2012-11-13 48 views
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); 

然而,有一個方法可以讓我先做的createElement()部分調用之前對window.open()?

+1

讓服務器首先創建它。 :) – epascarello

回答

3

我只看到如何在客戶端上做到這一點的唯一方法就是使用blob。 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的屏幕共享有一個有趣的article