Javascript 跨域iframe获取父页面URL

阅读(7719)

对于非同源的域名,iframe 子页面无法通过parent.location and top.location拿到具体的页面地址(但是可写)。

通过 document.referrer 可以拿到跨域 iframe 父页面的URL。

不过需要注意:

  1. 父页面URL如果带有敏感信息,如token等,会被子页获取到
  2. 如果是协议不同,是不能拿到的,如 http 和 https

function getParentUrl() {
    var isInIframe = (parent !== window),
        parentUrl = null;

    if (isInIframe) {
        parentUrl = document.referrer;
    }

    return parentUrl;
}

via: http://www.nczonline.net/blog/2013/04/16/getting-the-url-of-an-iframes-parent/