如何检查iframe是否自己加载?

时间:2014-07-10 17:55:43

标签: javascript jquery html iframe

我有一个加载用户请求的iframe。但是,我需要确保iframe不会加载自身,而是重定向到默认站点。

该过程必须是动态的,并且可以在任何页面上工作,因为我有多个页面这样做,并且每个站点的自定义代码都不实用。

1 个答案:

答案 0 :(得分:0)

只要您与父母在同一个域中,就可以使用parent。添加到包含iframe的文档:

$(function() {

    // Check if you are in an iframe, otherwise parent == self,
    // and the next check will always return true.
    function inIframe () {
        try {
            return window.self !== window.top;
        } catch (e) {
            return true;
        }
    }

    // Check if parent.url == self.url.
    function sameAsParent() {
        try {
            return parent.window.document.location.toString() === window.document.location.toString());
        } catch (e) {
            return false;
        }
    }

    if (inIframe() && sameAsParent()) {
        // You are being loaded by yourself! Redirect!
        window.location.href = 'http://some-redirect-url.com'
    }

});