簡體   English   中英

如何在不使用write()的情況下將iframe文檔替換為另一個現有的文檔對象

[英]How to replace iframe document with another pre-existing document object, without using write()

我只想用一個預先存在的文檔對象替換一個空白的iframe文檔。 不是可以與write()方法一起使用的HTML字符串(該解決方案在許多其他答案中) 我只希望一個文檔對象替換另一個文檔。


我的空白iframe:

<iframe src="about:blank" id="myIframe"></iframe>


替換空白iframe文檔的例程:

function replaceIframeDoc(objDoc){
    var nod_if    = document.getElementById("myIframe");
    var nod_ifDoc = nod_if.contentWindow.document || nod_if.contentDocument;
    nod_ifDoc     = objDoc;
}


創建文檔對象,並調用執行替換:
(注意:我將我的文檔對象封裝在一個簡單的對象中……我需要對其他一些不相關的東西進行此處理……只是為了輕松地傳遞一些屬性,等等。希望這對我的問題無關緊要!)

var obj_container = new Object;  //just to make easier to do some other stuff
obj_container.document = document.implementation.createHTMLDocument();
obj_container.document.open();
obj_container.document.write("<html>...(some html)...</html>");
obj_container.document.close();
replaceIframeDoc(obj_container.document);

根據您需要支持的瀏覽器,您可以執行以下操作:

var iframe = document.getElementById("myIframe");;
var oldNode = iframe.contentDocument.getElementById("myNode");
var newNode = document.importNode(oldNode, true);
document.getElementById("container").appendChild(newNode);

您可以在此處閱讀更多信息: https : //developer.mozilla.org/zh-CN/docs/Web/API/document.importNode

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM