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


通常情況下,我們獲取iframe父頁面的url很簡單:parent.location或top.location即可,但前提是它們遵循同源策略。

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

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

function getParentUrl() { 
    var url = null;
    if (parent !== window) { 
        try {
           url = parent.location.href; 
        }catch (e) { 
           url = document.referrer; 
        } 
     }
     return url;
}

當iframe是被動態創建的時候,以上方式依然有效。當然,你也可以使用window.name的方式去做處理。

 

轉自:https://blog.csdn.net/itKingOne/article/details/78335177


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM