我用JavaScript打开了一个新窗口:
var newwin = window.open('','preview','width=600,height=500');
现在我想在窗口中写一些JavaScript:
newwin.document.write("<script type='text/javascript'>alert('Hi!');<" + "/script>");
newwin.document.close();
但是,脚本永远不会被执行。我做错了吗?
更新:好的,现在我有一部分工作了。这是我目前的代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<script type='text/javascript'>
function SetContent()
{
$('#content').html('New Text');
}
function dowin()
{
var newwin = window.open('','preview','width=600,height=500');
newwin.document.write('<div id="content"></div><b>This should be replaced...</b>');
newwin.document.close();
var script = newwin.document.createElement("script");
script.type = "text/javascript";
script.src = 'jquery.js';
newwin.document.body.appendChild(script);
var script2 = newwin.document.createElement("script");
script2.type = "text/javascript";
script2.textContent = "(" + SetContent + ")();";
newwin.document.body.appendChild(script2);
}
</script>
</head>
<body>
<button onclick='dowin();'>Open</button>
</body>
</html>
它应该更改div
的内容,但正如您所看到的,它不会。
答案 0 :(得分:1)
您的代码在我的Firefox 3.7,Opera 10和IE6上正常运行,但您可以通过使用DOM函数尝试不同的方法。
var newwin = window.open('','preview','width=600,height=500');
function sayHi(){
alert('Hi!');
}
var script = newwin.document.createElement("script");
script.type = "text/javascript";
script.textContent = "(" + sayHi + ")();";
newwin.document.body.appendChild(script);
如果它不起作用,您应该在浏览器上仔细检查弹出窗口阻止程序或javascript阻止程序。
答案 1 :(得分:0)
function SetContent()
{
$(newwin).find('#content').html('New Text');
}