這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...