0

我的父页面上的元素只有在隐藏的 iframe 包含一个 div id 时才会更改。

如果我让代码在 html 页面上,一切都很好:

 <iframe id="myiframe" style="display:none" onload="load()" name="myiframe"   src="mysite.com"></iframe>

JavaScript:

function load(){


if (window.frames[0].document.getElementById('applications'))
{
var str=document.getElementById("tst").innerHTML;
var n=str.replace("Login","Logout");}}
document.getElementById('tst').href='logout';

但我需要从 html 文件中删除 iframe 代码并重新定位 js 文件。

我在 js 文件中使用此代码来触发 iframe:

window.onload = function(){
var link = "iframelink"
 var iframe = document.createElement('iframe');
iframe.frameBorder=0;
iframe.width="300px";
iframe.height="250px";
iframe.id="randomid";
iframe.addEventListener("load", load);
iframe.setAttribute("src", link);
document.getElementById("ad54").appendChild(iframe);
}

获取 iframe 的 html 代码:

<div id="ad54"</div>

iframe 启动,但现在我没有在父页面上更改任何元素,尽管 iframe 被触发。加载 iframe 时,我需要在父页面中进行这些更改。

4

1 回答 1

1

<div>元素不加载外部内容,因此它们从不触发load事件。

您似乎试图在iframe内容加载时触发事件。您需要将事件侦听器附加到 iframe。

iframe.addEventListener("load", load);
iframe.setAttribute("src", link);
于 2013-03-18T14:16:06.217 回答