错误:拒绝访问属性从弹出窗口到书签的权限

时间:2013-02-10 02:12:55

标签: php javascript permissions bookmarklet

前段时间我创建了一个书签,现在我正在尝试添加登录功能。

我这样做的方式。如果用户当前未登录并点击书签,则会打开一个弹出窗口,其中包含我的登录页面的网址。

我的想法是,一旦用户登录,我将回显javascript脚本标记。在脚本中有一个对书签中定义的函数的调用。

一旦用户登录,我就会在弹出窗口中回显这个。

if(logged){
    echo '
    <script type="text/javascript">
        window.opener.updateLoginBookMarklet(true);
        window.close();
    </script>
   ';
    exit;
}

这是在书签中定义的函数:

window.updateLoginBookMarklet = function(status){
     LoggedIn = status;
}

但似乎我得到了Error: Permission denied to access property "updateLoginBookMarklet"

这可能是由于跨域问题我不确定。

任何人都有线索?有办法吗?

1 个答案:

答案 0 :(得分:0)

  

这可能是由于跨域问题我不确定。

你是对的。出于安全原因,来自一个域的页面中的JavaScript无法直接与来自另一个域的页面进行交互。

一种解决方案是使用addEventListener和postMessage。我建议首先阅读这些内容,然后使用Google搜索bookmarklet postmessage获取一些实际示例。