0

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

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

我的想法是一旦用户登录,我将回显一个 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"

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

有人有线索吗?有办法解决吗?

4

1 回答 1

0

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

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

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

于 2013-02-10T17:10:15.457 回答