0

我想打开一个新窗口(或选项卡),并将 html 代码放入其中。我怎样才能做到这一点?

就像是:

window.open("","foo");
foo.body="alert('HI')';";
4

4 回答 4

2

好旧的 DOM0:

var win = window.open("javascript:void(0)");
win.document.write("<html><body>text</body></html>");
win.document.close();
于 2012-07-04T21:34:01.427 回答
1
window.open('foo.html', 'foo');

在里面foo.html你可以放你想要的代码。例如:

<html>
<head>
    <title>This is Foo</title>
    <script type="text/javascript">
        alert('HI')';
    </script>
</head>
</html>

您也可以直接写入新打开的窗口的内容:

var win = window.open('', 'foo');
var doc = win.document;
doc.write('<html>');
doc.write('<head>');
doc.write('<title>This is foo</title>');
doc.write('<script type="text/javascript">alert("HI");</script>');
doc.write('</head>')
doc.write('<body>')
doc.write("</body>")
doc.write("</html>")
于 2012-07-04T21:30:38.943 回答
1
 function openWindow()
 {
     NewWindow=window.open("", "awindow","width=300,height=300");
     NewWindow.document.write('New content...');
 }

HTML

<a href="javascript:openWindow()">Open</a>​

演示。

于 2012-07-04T21:42:05.387 回答
0

AFAIK,您不能从父级调用子级函数 - 但您可以从子级调用父函数

因此,在父窗口的全局范围内定义一个返回所需值的函数:

// Parent window
var getHTML = function(){
   return "<span>foo</span>";
};

然后在子窗口中调用它:

// Child window
window.onload = function(){
    document.getElementById('foo').innerHTML = window.opener.getHTML();
};
于 2012-07-04T21:46:24.783 回答