如何将JavaScript写入单独的窗口?

时间:2010-04-23 06:36:50

标签: javascript window

我用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的内容,但正如您所看到的,它不会。

2 个答案:

答案 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'); 
}