2

現在、私はこのようなコードを書いています-

chatWindow = window.open("chatWindow.html", "Chat Window",
 resizable=0,width=700,height=600);

var currentUserElement = chatWindow.document.createElement("currentUserElement");
    currentUserElement.setAttribute("id", "currentUserElement");
    currentUserElement.setAttribute("value",currentUserName);

ただし、window.open()を呼び出す前に、最初にcreateElement()部分を実行する方法はありますか?

4

1 に答える 1

3

クライアントでのみそれを行う方法を確認する唯一の方法は、ブロブを使用することです。HTML:

<input type="text" id="textId"></input>
<button id="buttonId">Open new Window</button>

そしてJS:

var button = $("#buttonId");

button.click(function () {
  var text = $("#textId").val();
  var html = "<html>"
      html += "<head><title>Window: " + text + "</title></head>";
      html += "<body onLoad='javascript:alert(\"" + text + "\")'>";
      html += text
      html += "</body></html>";
  var blob = new Blob([html], {type: 'text/html'});
  window.open(window.URL.createObjectURL(blob));
});​

そのアプローチを説明するためにjsfiddleを作成しました。ご覧のとおり、JS も実行されます。この手法を利用した html5rocks での画面共有に関する興味深い記事があります。

于 2012-11-13T22:21:50.193 に答える