前段时间我创建了一个书签,现在我正在尝试添加登录功能。
我这样做的方式。如果用户当前未登录并点击书签,则会打开一个弹出窗口,其中包含我的登录页面的网址。
我的想法是,一旦用户登录,我将回显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"
这可能是由于跨域问题我不确定。
任何人都有线索?有办法吗?
答案 0 :(得分:0)
这可能是由于跨域问题我不确定。
你是对的。出于安全原因,来自一个域的页面中的JavaScript无法直接与来自另一个域的页面进行交互。
一种解决方案是使用addEventListener和postMessage。我建议首先阅读这些内容,然后使用Google搜索bookmarklet postmessage
获取一些实际示例。