我有一些Javascript打开一个空白窗口,为它分配样式表,然后写一些文本.除了内容没有应用样式之外,这一切都正常.
代码如下所示:
var newWindow = window.open('', 'SecondWindow', 'toolbar=0,stat=0'); var style = newWindow.document.createElement('link'); style.type = "text/css"; style.rel = "stylesheet"; style.href = "styles/style.css"; newWindow.document.getElementsByTagName("head")[0].appendChild(style); newWindow.document.body.innerHTML="Hello world!
";
如果我使用Firefox Web Developer工具查看生成的源代码,将其保存为html文件,然后手动打开html文件,它会正确应用样式,因此看起来我需要做一些强制浏览器的操作以某种方式应用样式或重新呈现页面.有什么建议?
编辑添加,生成的源代码如下:
Hello world!
问题在于没有为该段落分配任何样式.但是打开具有相同源代码的文件会正确呈现.
默认情况下会打开一个新窗口,其URL为"about:blank".由于这个原因,相对URL引用不起作用.要更改窗口的位置以匹配原始文档,请致电:
newWindow.document.open();
然后,您应该将所需文档的框架写入窗口.如果需要,您现在可以包含样式表,因为document.write是一种比DOM方法在旧浏览器中添加样式表更可靠的方法.此方法还允许您编写DOCTYPE,因此您不会意外地以Quirks模式结束.
newWindow.document.write( ''+ ''+ ' '+ ''+ ''+ ); newWindow.document.close();