Ho una pagina HTML che contiene un tag Object per ospitare una pagina HTML incorporata.Modifica del contenuto dei dati su un tag dell'oggetto in HTML
<object style="border: none;" standby="loading" id="contentarea"
width="100%" height="53%" type="text/html" data="test1.html"></object>
Tuttavia, ho bisogno di essere per cambiare la pagina HTML all'interno del tag dell'oggetto. Il codice attuale sembra creare un clone dell'oggetto e sostituisce l'oggetto esistente con esso, in questo modo:
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);
}
questo sembra un modo piuttosto povero di fare questo. Qualcuno conosce il modo "corretto" di cambiare la pagina incorporata?
Grazie!
MODIFICA: In risposta alle risposte di seguito, ecco l'intera fonte della pagina che sto utilizzando. L'uso di setAttribute non sembra modificare il contenuto del tag 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 page" onclick="doPage();" /></p>
<object style="visibility: visible; border: none;" standby="loading data" id="contentarea" title="loading" width="100%" height="53%" type="text/html" data="test1.html"></object>
</form>
</body>
</html>
Le pagine Test1.html e Test2.html sono solo semplici pagine HTML che espongono il testo 'Test1' e 'Test2' rispettivamente.
Questo non ha funzionato per me. Sia 'object.location' che' object.parentWindow' non sono definiti. –