(跨域)禁止从外部iframe调用父函数

时间:2015-11-09 21:29:53

标签: javascript html iframe

...但我确实控制了第二个域内的部分javascript (它集成了iframe)。 所以,我需要的是解决我的问题。我们example2.com(此一个持有iframe)和example.com(这一个是iframe中的原始内容)。在iframe内部,用户单击执行parent.redirectUser()的按钮,虽然我在example2.com中定义了该函数,但它无法执行,因为它将该函数指向禁止从iframe中访问。考虑到我可以在example2.com中控制javascript,还有其他方法可以解决这种情况吗?非常感谢你的帮助...

1 个答案:

答案 0 :(得分:0)

是的,你可以做到。 你可以使用消息技术, 从孩子发送消息(example2.com):

parent.postMessage("Ok", "example.com");
在父(example.com)中

,您必须添加以下代码:

    //add eventlistener for message event
    if (window.addEventListener) {
        window.addEventListener("message", listener);
    } else {
        // IE8
        window.attachEvent("onmessage", listener);
    }
    function listener(event) {
//check the message trust or not?
        if (event.data == "Ok") {
//from parent you can call function, but function must be placed in global scope
            redirectUser();
        }
    }