我希望在发回邮件时不要显示下面的弹出消息。我的页面与定价无关,它显示在回发时更新的ms图表。如何在代码或java脚本中禁用?
再次显示网页,Internet Explorer需要重新发送您之前提交的信息。
这是我尝试过的javascript:虽然不起作用。
<script type="text/javascript">
// <!--
function submitForm() {
window.opener.document.forms[0].submit();
}
// -->
</script>
并将函数附加到表单中:
<body>
<form id="form1" runat="server" onsubmit="submitForm()">
答案 0 :(得分:6)
我敢打赌你在JavaScript中这样做了:
FB.Event.subscribe('auth.login', function(response) {
window.location.reload();
});
FB.Event.subscribe('auth.logout', function(response) {
window.location.reload();
});
虽然上述代码来自Facebook文档,但它适用于实施Facebook JavaScript SDK的独立网站,会在Internet Explorer和Firefox中破坏您的Facebook应用,导致无限循环。
当Facebook加载应用程序时,它会通过POST发送有关用户身份验证状态的信息。 SDK处理此数据并对用户进行身份验证。
通过告诉JavaScript SDK在成功验证后重新加载页面,Firefox和Internet Explorer将此解释为意味着他们也应该再次发送POST数据。您的应用程序再次收到POST数据,重新验证用户,并重新加载页面,导致无限循环。
解决方案:请勿使用window.location.reload()
。相反,您需要设置window.location.href
(或以其他方式从浏览器请求中删除POST数据)。
答案 1 :(得分:1)
对于像我这样不太流利的Javascript,我会对Aaron所说的内容进行一些阐述。至少这是我在阅读他的帖子后挖出来的。
window.location.href = window.location.href;
这将取代document.location.reload();
,并按宣传的方式运作。
我最终不得不修改window.location.href
字符串,因为我的页面表现不同,具体取决于用户来自哪个页面。所以,这是我后代的完整方法。
function RefreshParentPage()
{
//document.location.reload();
var redirectURL = window.location.href;
if (window.location.href.indexOf("showpage=summary") > -1) {
redirectURL = document.location.href.replace("showpage=summary", "showpage=events")
}
window.location.href = redirectURL;
}
答案 2 :(得分:0)
这意味着此页面是在执行POST请求后获得的。停止这种情况的最佳方法是在服务器代码中处理完POST请求后重定向到同一页面。