【发布时间】:2011-12-15 14:57:01
【问题描述】:
使用名为 Wordpress Social Login 的 wordpress 插件,我允许用户通过登录各种社交网络来发表评论。
问题是在新窗口中进行身份验证并且该窗口关闭后,原始窗口然后刷新。我希望这个窗口不要刷新,而是触发一些 javascript 来重新加载它的某些部分。
我在 authentication.php 中找到了关闭窗口的行,但找不到刷新当前页面的原因。
大量 PHP 完成后,这发生了......
<html>
<head>
<script>
function init() {
window.opener.wsl_wordpress_social_login({
'action' : 'wordpress_social_login',
'provider' : '<?php echo $provider ?>'
});
window.close();
}
</script>
</head>
<body onLoad="init();">
</body>
</html>
关闭弹出窗口。是什么让主窗口刷新以及如何停止它。
【问题讨论】:
-
主窗口可能有一些功能可以检查(像每秒一样)另一个窗口是否仍然打开。这就是它如何检测到弹出窗口已关闭,然后刷新主窗口。我从未使用过该插件,从未使用过 Wordpress,但这就是我看到其他类似小部件的工作方式。
-
是的,主窗口中的某些 JavaScript 函数将具有从 setInterval() 调用的函数,以定期检查该弹出窗口是否仍然打开,如果未打开,则执行 window.location 之类的操作.reload(true)
-
没有 setInterval、setTimeout 的证据,输入字段中有大量 window.location.href 不会对其产生影响。在身份验证中有这条线。我删除了它,但这样做不会触发来自社交网络的响应
-
我认为它必须由弹出窗口触发,因为如果我在它运行它的脚本之前关闭它,它不会刷新主页
-
在主窗口中包含的 js 文件中找到这个函数:wsl_wordpress_social_login 我想它可能在这个函数中。
标签: php jquery wordpress social-networking