相关疑难解决方法(0)

在HTML中更改对象标记的数据内容

我有一个HTML页面,其中包含一个Object标记来托管嵌入的HTML页面.

<object style="border: none;" standby="loading" id="contentarea" 
 width="100%" height="53%" type="text/html" data="test1.html"></object>
Run Code Online (Sandbox Code Playgroud)

但是,我需要更改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); 
}
Run Code Online (Sandbox Code Playgroud)

这似乎是一种相当差的方式.有谁知道改变嵌入页面的'正确'方式?

谢谢!

编辑:在回答下面的答案,这里是我现在使用的页面的完整来源.使用setAttribute似乎不会更改Object标记的内容.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Test</title>
<script language="JavaScript">
function doPage()
{
    var objTag = document.getElementById("contentarea");
    if (objTag != null)
    {
        objTag.setAttribute('data', 'Test2.html');
        alert('Page should have been changed');
    }
}
</script>
</head>
<body>
<form name="Form1" method="POST">
<p><input type="button" value="Click to change …
Run Code Online (Sandbox Code Playgroud)

html javascript object

18
推荐指数
4
解决办法
7万
查看次数

标签 统计

html ×1

javascript ×1

object ×1