2014-01-16 139 views
0

我不擅長編程,並且無法在我的主頁中加載iframe。如何在主內容完全加載時加載iframe

主頁面和iframe不在同一個域中,但我可以修改每個域。我的主頁由CMS(Joomla)管理,我的Iframe是一個使用ArcGIS API(3.7版)和Dojo(1.9版)的JavaScript應用程序。

我只想在主頁完全加載時在我的iframe中加載JavaScript代碼。

這裏是我的iframe的JS代碼:

require([ 
    "esri/map", 
    "dojo/domReady!"], function(Map) { 
    var map = new esri.Map("mapDiv"); 
    ... 
}); 

預先感謝您的幫助! Magalie。 Magalie。

回答

0

我幾乎認爲,爲了讓您知道iframe已經完全加載,您需要與iframe進行交互。 Iframe會發布一條消息,當它已經完成加載,這將是你需要捕獲的點..

只要基本的iframe相關的事件存在,你只能得到onLoad事件,這是當iframe已經開始加載,沒有完成加載。

+0

我想@Magalie正在問如何讓iframe知道主頁面被加載,而不是其他方式。 :) – Juffy

0

看看Javascript的postMessage功能 - 有一個很好的例子來回傳遞消息在iframe here之間來回傳遞。當你的父文檔加載完成時,您可以使用它告訴IFRAME:

iframe = document.getElementById('content'); 
iframe.contentWindow.postMessage('finished_loading', 'http://remote-domain.com'); 

和iframe中可以聽使用:

window.addEventListener('message', doStuffOnceParentLoaded, false); 

window.attachEvent("onmessage", doStuffOnceParentLoaded, false); 

在IE瀏覽器,因爲標準是爲了其他人。

請記住,您可能最終會遇到奇怪的不一致定時問題 - 如果您的iframe在父裝入後完成裝入,它可能不會註冊以在事件發送之前偵聽事件。

+0

對不起,我的沉默,並感謝您的答案。 我同時在幾個項目上工作!我會很快測試你的建議,並給你回報。 – Magalie

相關問題