我有一个HTML页面,其中包含一个Object标记来托管嵌入的HTML页面.
但是,我需要更改object标签中的HTML页面.当前代码似乎创建了对象的克隆并用它替换现有对象,如下所示:
function changeObjectUrl(newUrl) { var oContentArea = document.getElementById("contentarea"); var oClone = oContentArea.cloneNode(true); oClone.data = newUrl; var oPlaceHolder = document.getElementById("contentholder"); oPlaceHolder.removeChild(oContentArea); oPlaceHolder.appendChild(oClone); }
这似乎是一种相当差的方式.有谁知道改变嵌入页面的'正确'方式?
谢谢!
编辑:在回答下面的答案,这里是我现在使用的页面的完整来源.使用setAttribute似乎不会更改Object标记的内容.
Test
Test1.html和Test2.html页面只是简单的HTML页面,分别显示文本'Test1'和'Test2'.
您可以使用setAttribute执行此操作
document.getElementById("contentarea").setAttribute('data', 'newPage.html');
编辑:还建议您使用window.onload来确保已加载DOM,否则您将无法访问其中的对象.
它可能是这样的:
function changeData(newURL) { if(!document.getElementById("contentarea")) return false; document.getElementById("contentarea").setAttribute('data', newURL); } window.onload = changeData;
您可以在此处阅读有关window.onload的更多信息