Как создать экземпляр размещенных элементов управления .NET, динамически загружаемых с помощью JavaScript? - PullRequest
0 голосов
/ 04 декабря 2009

Я пытаюсь динамически загрузить несколько размещенных элементов управления .NET на страницу, используя JavaScript для вставки тегов OBJECT в HTML.

Моя проблема в том, что объекты не создаются, только статический объект, который виден при загрузке страницы. Есть ли способ загрузить эти объекты?


<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>

1 Ответ

0 голосов
/ 04 декабря 2009

Вы можете попробовать:

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);
}
...