我使用
创建了一个新的DOM文档
var foo=document.implementation.createDocument(null, "html");
我想设置一些属性,包括位置。但是foo.location
返回null
,而foo.location.href="https://stackoverflow.com"
返回错误Cannot set property 'href' of null
。如何设置位置?
答案 0 :(得分:2)
您必须先按照@rlemon的建议为该文档建立一个browsing context。
提供浏览上下文的最简单方法是通过用新文档替换iframe
的文档,将新文档放入iframe
元素中。
此示例摘自MDN演示中的操作方法:
var frame = document.getElementById("theFrame");
// note the use of createHTMLDocument
var doc = document.implementation.createHTMLDocument("New Document");
var destDocument = frame.contentDocument;
var srcNode = doc.documentElement;
var newNode = destDocument.importNode(srcNode, true);
destDocument.replaceChild(newNode, destDocument.documentElement);
// Now it is in a browsing context and the location can be set
destDocument.location.href = "//example.com";
我注意到您正在创建HTML文档。因此,我使用createHTMLDocument
而不是createDocument
(它创建了XMLDocument
)。
此示例将不会作为摘要运行,因为iframe
被阻止。这是jsbin with this code running。