如何通过javascript获取iFrame信息(引用网址)?

时间:2012-11-27 01:02:58

标签: javascript iframe

有没有人知道我们如何访问iFrame信息(右键点击浏览器中的iFrame - >此框架 - >查看框架信息)

主要是我想获得推荐网址。

我能够通过contentDocument.location.href

获取地址

但是我无法获得其他属性(类型,渲染模式,引用url,...)。

BTW,document.referrer不是我要搜索的东西。

请尽快帮助

2 个答案:

答案 0 :(得分:1)

主机页面和iframe是否位于同一个域中?由于“跨框架通信”在所有现代浏览器中受到严格限制,我认为没有办法实现这一点。

答案 1 :(得分:0)

我没有写这个,也不记得它来自哪里,但它已经死了,这是我一直留下的片段:

        function parseUri(str) {
            var o = parseUri.options,
                m = o.parser[o.strictMode ? "strict" : "loose"].exec(str),
                uri = {},
                i = 14;

            while (i--) uri[o.key[i]] = m[i] || "";

            uri[o.q.name] = {};
            uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) {
                if ($1) uri[o.q.name][$1] = $2;
            });

            return uri;
        };

        parseUri.options = {
            strictMode: false,
            key: ["source", "protocol", "authority", "userInfo", "user", "password", "host", "port", "relative", "path", "directory", "file", "query", "anchor"],
            q: {
                name: "queryKey",
                parser: /(?:^|&)([^&=]*)=?([^&]*)/g
            },
            parser: {
                strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
                loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
            }
        };

然后像这样使用它:

       parseUri(document.referrer).host //<-- gets host name