目前我正在这样做:
var newdoc = document.implementation.createHTMLDocument("Wrong title");
newdoc.open();
newdoc.write('<!doctype html><html><head><title>Right title</title></head><body><div id="a_div">Right content</div></body></html>');
newdoc.close();
然后我尝试获取有关加载文档的一些信息,例如:
> newdoc.title
Right title
> newdoc.getElementById("a_div").innerHTML
Right content
问题是它只适用于Chrome。在Firefox和Opera上,文档关闭后似乎没有加载DOM。我做错了什么?
我写了这个小小的小提琴来演示这个问题:http://jsfiddle.net/uHz2m/
答案 0 :(得分:1)
好的,在阅读了文档后,我注意到createHTMLDocument()
没有创建一个零字节长度的文档对象,而是一个像这样的基本HTML脚手架:
<!DOCTYPE html>
<html>
<head>
<title>Wrong title</title>
</head>
<body></body>
</html>
这就是newdoc.write()
无法正常工作的原因。
相反,我可以使用html
元素并更改其HTML代码(corrected fiddle)。
var newdoc = document.implementation.createHTMLDocument("Wrong title");
newdoc.documentElement.innerHTML = '\
<!doctype html>\
<html>\
<head>\
<title>Right title</title>\
</head>\
<body>\
<div id="a_div">Right content</div>\
</body>\
</html>';