iframe跨域獲取的父頁面URL

2021-09-10 03:30:36 字數 695 閱讀 5799

這2天主要處理乙個子頁面與父頁面跨域互動問題,子頁面需要獲取父頁面的url來傳遞資料,取不到,查資料得知,故整理一波.

當iframe與父頁面不屬於同乙個網域名稱時,像上面的獲取會因為安全策略原因而失敗。在nczonline的一篇文章上看到一種方法,使用document.referrer。

方法很簡單,通過parent !=window檢測iframe與父頁面是否同源,當不同源時,使用document.referrer,否則使用parent.location.href或者top.location.href;

var getparenturl = function() catch (e)  

}return url;

}

當iframe是被動態建立的時候,以上方式依然有效。

父子頁面傳遞資料如下:

子頁面:

top.postmessage(json.stringify(data || ''), getparenturl())
父頁面:

window.addeventlistener('message', function(event)

}, false);

父頁面需要先監聽子頁面內容,判斷一下是否從需要的域中返回的資料.

iframe跨域獲取的父頁面URL

當iframe與父頁面不屬於同乙個網域名稱時,像上面的獲取會因為安全策略原因而失敗。在nczonline的一篇文章上看到一種方法,使用document.referrer。方法很簡單,通過parent window檢測iframe與父頁面是否同源,當不同源時,使用document.referrer,否...

跨域下使用獲取iframe的父頁面URL

通常情況下,我們獲取iframe父頁面的url很簡單 parent.location或top.location即可,但前提是它們遵循同源策略。當iframe與父頁面不屬於同乙個網域名稱時,像上面的獲取會因為安全策略原因而失敗。在nczonline的一篇文章上看到一種方法,使用document.ref...

跨域下使用獲取iframe的父頁面URL

通常情況下,我們獲取iframe父頁面的url很簡單 parent.location或top.location即可,但前提是它們遵循同源策略。當iframe與父頁面不屬於同乙個網域名稱時,像上面的獲取會因為安全策略原因而失敗。在nczonline的一篇文章上看到一種方法,使用document.ref...