2010-07-21 80 views
1

好吧,我知道每個人都認爲IFrames不好,我知道。但我需要「使用」一個罕見的情況。在使用IFrame時把你的JS放在哪裏

所以我有的問題是,當你有一個.aspx頁面,其中包含一個IFrame,然後在該IFrame另一個.aspx頁面,如果你想要那個IFrame內的.aspx頁面能夠使用JS,應該你:

1)把所有的JS放在主要.aspx中,並以某種方式引用代碼從內部.aspx到主要.aspx調用駐留在主要.aspx中的JS方法?意思是我應該思考這個問題,因爲我把所有的JS放在主要的.aspx文件的內部.aspx文件中,然後嘗試從內部的.aspx文件中調用並以某種方式引用這些JS方法?因爲現在我無法抓住.aspx控件的ClientID,當我在內部.aspx中有JS時,並且.aspx也有asp.net web控件,我試圖將JS var設置爲它的clientID。正常的東西在這裏,但它不工作,因爲每次我在JS中測試這個var它只是吐回服務器端的ID,而不是運行時重寫的ID,控制中的命名容器吐出。

我也看到這個問題,你必須以某種方式得到jQuery庫,如果使用這樣的庫以某種方式引用您的.aspx位於IFrame。你不會想要加載jQuery庫兩次(一次在你的主頁中,一次在你的Iframe的.aspx中),以便進一步使我傾向於相信這個選項是我需要去的方式,以便內部的.aspx以某種方式引用main .aspx對我包含在我的母版頁中的jQuery庫的引用。主.aspx與該母版頁相關聯。

2)將主.aspx相關的JS當然放在主.aspx文件中,並將內部.aspx相關的JS放在內部的.aspx文件中。但是,我又一次遇到了問題。

這是很多閱讀,但我不知道該怎麼解釋這個問題和情況,我想弄清楚使用iframe後什麼人在做這件事。

回答

2

您可以在主頁面的任何iframe使用top引用任何東西,如top.getElementById('maindiv');

從主頁,您可以通過它的名稱或索引從frames陣列訪問幀。

框架和父母必須從同一個域出售以這種方式交叉通信。