iframe中的Window.top和top.document

时间:2017-05-15 08:38:21

标签: javascript jquery html

我有2页,page1.html(mypage)和page2.html(外部),page1.html正在使用iframe加载page2.html。 page2.html基本上有用户信息,它包含菜单,表格。有一个注销函数,代码如下

$('#inetLogoutId').click(function(event) {
        var logoutMsg = "Are you sure you want to log out?";
        dialogConfirm(logoutMsg, function() {
            top.document.location.href = path + "/logout";
        })
    });
由于Uncaught DOMException: Blocked a frame with origin "https://example.com" from accessing a cross-origin frame.

注销无法正常工作,如果将注销功能修改为window.top.location.href该怎么办?这两者之间的主要区别是什么。

谢谢

3 个答案:

答案 0 :(得分:3)

当iframe位于不同的域名时,您无法访问iframe的父级。

虽然你可以用另一种方式解决这个问题: http://madskristensen.net/post/iframe-cross-domain-javascript-calls

答案 1 :(得分:1)

这是因为同源策略。您已将所有文件保存在同一网站或主机上。同源策略阻止访问跨源。

答案 2 :(得分:0)

我们必须使用window.top.location.href = path + "/logout";