2013-03-18 88 views
0

我的父頁面上的元素只有在隱藏的iframe包含一個div ID時纔會更改。從js文件調用javascript

一切都很好,如果我讓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文件中刪除和重新定位的js文件的iframe代碼。

我使用此代碼在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); 
} 

HTML代碼來獲得的iframe:

<div id="ad54"</div> 

的Iframe發佈,但現在我沒有得到任何元素雖然父頁面上更改iframe被觸發。當加載iframe時,我需要在父頁面中進行這些更改。

+0

這兩個頁面(父級和iframe)在同一個域上嗎? – strah 2013-03-18 14:08:23

+0

關閉你的iframe :) – Christian 2013-03-18 14:09:45

+0

是的,在同一個域。 Iframe關閉:) – Blazer 2013-03-18 14:15:09

回答

1

<div>元素不會加載外部內容,所以他們從不會觸發load事件。

iframe內容加載時,您似乎試圖觸發該事件。您需要將您的事件偵聽器附加到iframe。

iframe.addEventListener("load", load); 
iframe.setAttribute("src", link);