动态创建整个页面,包括脚本和样式

时间:2012-02-19 14:28:13

标签: javascript

我正在玩下面的代码。目的是打开一个新窗口并从头开始创建一个基本文档,而不是从文件中加载它。

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(),但这根本不起作用,也没有用createElement创建整个文档(html,head和body标签)。

如果它有任何重要性,那么需要加载的脚本与首先打开的脚本相同。我不知道这是否会产生冲突但我不确定为什么会这样做。只是提一下好的措施。

这可能吗?

1 个答案:

答案 0 :(得分:2)

在访问文档之前尝试关闭文档。

var win = window.open('...');
win.document.open();
win.document.write('...');
win.document.close();

其他选项是建立字符串并立即将其全部添加而不附加到它。