我正在使用以下代码。目的是打开一个新窗口并从头开始创建一个基本文档,而不是从文件加载它。
function openNew() {
var win = window.open('', 'new') ;
win.document.write('<html><head><title>New</title></head><body><div id="wrap">Hello World</div></body></html>') ;
var head = win.document.getElementsByTagName('head')[0] ;
var style = win.document.createElement('link') ;
style.rel = "stylesheet" ;
style.type = "text/css" ;
style.href = "/css/main.css" ;
head.appendChild(style) ;
var script = win.document.createElement('script') ;
script.type = "text/javascript" ;
script.src = "/js/main.js" ;
head.appendChild(script) ;
return false ;
}
document.write
部分似乎有效,但其余部分没有任何作用。或者至少我什么都不能告诉,我没有得到任何错误或任何东西。我尝试将脚本部分与文档的其余部分一起写入 document.write
中,但这没有帮助。还尝试使用 innerHTML
而不是 write()
但这根本不起作用,使用 创建整个文档(html、head 和 body 标签)也不起作用创建元素
。
如果有任何重要性的话,需要加载的脚本与首先打开的脚本相同。我不知道这是否会以某种方式造成冲突,尽管我不确定为什么会这样做。只是为了更好的衡量而提及它。
这可以做到吗?
最佳答案
在访问文档之前尝试关闭该文档。
var win = window.open('...');
win.document.open();
win.document.write('...');
win.document.close();
其他选项是构建字符串并一次性添加所有内容,而不是附加到它。
关于javascript - 动态创建整个页面,包括脚本和样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9350037/