新创建的 DOM 文档位置



我创建了一个新的 DOM 文档

var foo=document.implementation.createDocument(null, "html");我想设置一些属性,包括位置。但是foo.location返回nullfoo.location.href="https://stackoverflow.com"返回错误Cannot set property 'href' of null。如何设置位置?

您必须首先按照@rlemon的建议为该文档建立浏览上下文。

提供浏览上下文的最简单方法是通过将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。

相关内容

  • 没有找到相关文章

最新更新