iframe拒绝javascript权限的问题,即使它是同一个域

时间:2011-07-04 13:21:45

标签: javascript cross-domain same-origin-policy

我正在与同一起源政策进行永恒的战斗。

我有一个动态加载到iframe中的页面的注册过程。此过程位于不同的域上,我知道这是通过相同的原始策略禁止的。

然而!在进程结束时,我使用url变量将帧引导回父域上的页面,然后触发一个函数来刷新页面。

我认为,由于页面现在位于同一个域中,这不会成为问题,而且在firefox和chrome上它运行良好,但是它仍然会抛出一个权限被拒绝的错误。

我在iframe中运行的函数

if(gup("command") == "refresh"){                
    parent.samRefresh();                
        }

在父框架中我有

function samRefresh(){
    location.reload(true);

}

有人有任何想法吗?我知道有一些脚本可以解决这个问题,但如果可能的话,我宁愿不使用它们。

提前感谢您提供的任何帮助

1 个答案:

答案 0 :(得分:0)

尝试以下方法:

在iFrame中:

window.parent.success_msg(deferred);

在父页面上:

window.success_msg = function(dfd) {
    console.log("I'm from the parent window");
};

还要确保您运行的是localhost,而不是从文件系统中查看文件。