2010-09-17 52 views
0

我正在嘗試爲窗口的frames集合中的每個幀找到DOM iframeframe元素。我認爲最快的方法是訪問框架的frameElement屬性。該屬性僅適用於同域訪問,並返回未定義的值,並在跨域案例中向日志中輸出錯誤消息。在執行幀訪問之前,我可以告訴它是否跨域嗎?

我可以遍歷從document.getElementsByTagName返回的元素以查找跨域情況下的正確元素,但是我想避免將「Unsafe JavaScript attempt」消息打印到日誌中。

如果屬性訪問嘗試會違反跨域安全策略,在嘗試之前是否有任何方法可以告訴?

謝謝。

回答

0

您可以檢查託管頁面和框架(src屬性)的url上的域。如果域名不同,您很可能會遇到錯誤。

我說很有可能是因爲如果該框架位於子域上,但已指定document.domain與父框架相同,則跨域訪問將起作用。

+0

有沒有解析src屬性的標準方法?我試圖檢查框架的位置屬性,但觸發了跨域錯誤。 – Greg 2010-09-17 20:10:28

+0

@Greg:據我所知,還不算。但是像http://w3guru.blogspot.com/2009/01/how-to-get-domain-name-from-url-using.html中提到的那樣使用一些正則表達式並比較字符串。 – 2010-09-17 20:19:08

+0

如果用戶在框架中鏈接到另一個站點,那麼這也不會失敗,所以src和框架的內容不再匹配? – Greg 2010-09-17 20:35:16

相關問題