我想改变用户状态的按钮点击,所以我所做的是,检测当前状态和改变,如果需要的话。
但在这种情况下,在后端更改状态,但要显示状态,页面需要刷新,因为刷新时它会检查当前状态并显示。所以我使用“window.location.reload”属性来显示页面的最新状态
所有的东西都在IE中运行得很好。但在Firefox和Chrome的情况下,状态不会改变。我认为“窗口。位置。重新加载”是不工作,因为当我只是评论这一行,并尝试单击按钮,手动刷新页面,它显示的变化状态。
你能建议我在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>
请建议!
9条答案
按热度按时间zxlwwiss1#
我在AngularJS和Firefox中遇到了这个问题。(重新加载在Chrome中很好)。通过使用setTimeout解决问题。
dojqjjoe2#
我还有两个选择
以及:
我还没有在Firefox和Chrome上测试过,但它可能会帮助你更快。明天我会做测试和更新的答案,如果这不工作。
4ktjp1zp3#
你试过这个吗?:
显然你可以放下“Windows”,但我自己还没有试过。
lvmkulzt4#
我在Chrome和Firefox中遇到了同样的问题。我能够通过让服务器用页面的URL响应来缓解这个问题。对于您的情况,您可以让响应成为用户状态的新值。下面是两个例子:
。。和服务器响应
这消除了Chrome中的不一致性,页面重新加载不会失败。
o2gm4chl5#
Look this您可以通过将forceGet参数设置为true来强制reload从服务器获取页面:
w6mmgewl6#
在这里,这是工作,我与火狐以及克罗姆和它的工作罚款与IE。
bbmckpt77#
从我的Angular 来看,关键的一点是,对我来说,函数的位置必须高于调用的位置。考虑到浏览器从上到下解释JavaScript,如果我的reload代码在调用它的对象下面,它就会失败。如果我把代码放在它上面,window.location.href = window.location.href;成功了
gcmastyq8#
我刚刚找到的超级解决方案。
你必须模拟发布一个空表单。
HTML
JS
cbwuti449#
我尝试了不同的答案,但对我有效的是参数“true”强制重新加载