【发布时间】:2013-09-28 20:07:01
【问题描述】:
我想在单击按钮时更改用户状态,所以我要做的就是检测当前状态并在需要时进行更改。
但在这种情况下,后端的状态会发生变化,但要显示页面需要刷新的状态,因为刷新时它会检查当前状态并显示。所以我使用“window.location.reload”属性在页面上显示最新状态
在 IE 中一切正常。但在 Firefox 和 Chrome 的情况下,状态不会改变。我认为“window.location.reload”不起作用,因为当我只是评论这一行并尝试单击按钮并手动刷新页面时,它会显示更改状态。
您能否建议我应该使用什么来在 Firefox 和 Chrome 中进行这项工作?
当我用谷歌搜索时,我发现如果你在“setTimeout()”中提供它,它可以在 Firefox 和 Chrome 中运行。我试过了,但即使那样它也不适合我。
<script>
$(document.body).on('click', '#activate', function () {
var pkgVersion = $(this).attr('data-version');
alert("@Url.Action("SetActivePackage", "Deployment")", { version: pkgVersion });
$.get("@Url.Action("SetActivePackage", "Deployment")", { version: pkgVersion }).done(function () {
});
setTimeout(function () { window.location.reload(data); }, 0);
});
</script>
请推荐!
【问题讨论】:
-
$.get(stuff).done(window.location.reload); -
另外,尝试
window.location.reload(true),但不要在这样的超时内,而是在 ajax 调用的成功处理程序中。 -
setTimeout(location.reload.bind(location), 0); ?
-
感谢您的调查,我尝试了这两个选项,但没有运气:-(,我还修改了一些代码。它现在是“window.location.reload(data);”,但最后同样的问题它不会自动重新加载
标签: javascript jquery google-chrome firefox reload