新创建的DOM文档位置

时间:2019-06-11 15:18:36

标签: javascript html url domdocument

我使用
创建了一个新的DOM文档     var foo=document.implementation.createDocument(null, "html");
我想设置一些属性,包括位置。但是foo.location返回null,而foo.location.href="https://stackoverflow.com"返回错误Cannot set property 'href' of null。如何设置位置?

1 个答案:

答案 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