2009-12-04 2 views
0

JavaScript을 사용하여 HTML에 OBJECT 태그를 동적으로 삽입하는 .NET 호스트 컨트롤을 동적으로로드하려고합니다.JavaScript를 통해 동적으로로드되는 .NET 호스트 컨트롤을 어떻게 인스턴스화합니까?

내 문제는 개체가 인스턴스화되지 않고 페이지로드시 표시되는 정적 개체 만 나타납니다. 이러한 객체를로드 할 수있는 방법이 있습니까? 당신은 시도 할 수

 

<h1> 
    Visible static</h1> 
    <div id="staticObject"> 
    <object id="Object1" name="dropfolder" classid="http:DropFolder.dll#DropFolder.DropFolder"> 
     <param name="FolderName" value="Intranet only - Worcs"> 
     <param name="NodeKey" value="default|Intranet"> 
     <param name="DropAction" value=""> 
    </object> 
    </div> 
    <h2> 
    Hidden static</h2> 
    <div id="objwrap" style="display: none;"> 
    <object id="default_Intranet" name="dropfolder" classid="http:DropFolder.dll#DropFolder.DropFolder"> 
     <param name="FolderName" value="Intranet only - Worcs"> 
     <param name="NodeKey" value="default|Intranet"> 
     <param name="DropAction" value=""> 
    </object> 
    </div> 
    <input type="button" value="unhide!" onclick="document.getElementById('objwrap').style.display = 'block';" /> 
    <h2> 
    OnLoad target</h2> 
    <div id="objectTarget1"> 
    </div> 
    <h2> 
    Click target</h2> 
    <div id="objectTarget2"> 
    </div> 
    <input type="button" value="inject" onclick="javascript:inject('objectTarget2');" /> 

    <script type="text/javascript"> 
    function inject(target) { 
     var target = document.getElementById(target); 
     target.innerHTML = 
     '<object id="default_Intranet" name="dropfolder" classid="http:DropFolder.dll#DropFolder.DropFolder">' + 
     '<param name="FolderName" value="Intranet only - Worcs">' + 
     '<param name="NodeKey" value="default|Intranet">' + 
     '<param name="DropAction" value="">' + 
     '</object>'; 
    }; 

    inject('objectTarget1'); 
    </script> 
 

답변

0

는 :

function inject(target) { 
    var obj = document.createElement("object"); 

    obj.id = "default_Intranet"; 
    obj.name = "dropFolder"; 
    obj.classid = "http:DropFolder.dll#DropFolder.DropFolder"; 

    var param1 = document.createElement("param"); 
    param1.name = "FolderName"; 
    param1.value = "Intranet only - Worcs"; 
    obj.appendChild(param1); 
    // repeat for other params 

    document.getElementById(target).appendChild(obj); 
} 
+0

난 내가 하나가 어떤 점에서,이 솔루션은 object 태그를 삽입하는 것을 시도하고 DOM에 한 번 CLASSID를 설정 생각합니다. – gum411