1

iFrame 情報にアクセスするにはどうすればよいですか (ブラウザーで iFrame を右クリック -> このフレーム -> フレーム情報を表示)。主に参照URLを取得したい。

でアドレスを取得できましたcontentDocument.location.hrefが、他の属性 (タイプ、レンダリング モード、参照 URL など) を取得できません。

ところで、document.referrer私が探しているものではありません。

4

2 に答える 2

1

ホスト ページと iframe は同じドメインにありますか? 「クロスフレーム通信」は最近のすべてのブラウザーで厳しく制限されているため、これを達成する方法はないと思います。

于 2012-11-27T01:18:11.227 に答える
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
于 2012-11-27T04:08:50.113 に答える