window.location.reload 不适用于 Firefox 和 Chrome

     2023-02-22     126

关键词:

【中文标题】window.location.reload 不适用于 Firefox 和 Chrome【英文标题】:window.location.reload not working for Firefox and Chrome 【发布时间】: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);”,但最后同样的问题它不会自动重新加载 【参考方案1】:

我还有另外两个选择:

history.go(0);

还有:

window.location.href = window.location.href;

我尚未在 Firefox 和 Chrome 上对其进行测试,但它可能会帮助您更快。明天我会做测试并更新答案,如果这不起作用。

【讨论】:

感谢您的调查,我尝试了这两个选项,但没有运气:-(,我还修改了一些代码。它现在是“window.location.reload(data);”,但最后同样的问题它不会自动重新加载 感谢您创建 Fiddle... 真的很喜欢这些示例... 但幸运的是我的问题在 MVC 的帮助下解决了... 无论如何谢谢! 在 Firefox 中,如果您的 URL 中有 hash,则必须将其删除。看看如何做到这一点,例如。这里:***.com/questions/5818269/… 第二个选项适用于 Chrome、FF、Safari 和 Safari Mobile。 谢谢.... 已经搜索了一个小时! history.go 工作...【参考方案2】:

我在 AngularJS 和 Firefox 中遇到了这个问题。 (在 Chrome 中重新加载很好)。 通过使用 setTimeout 问题解决了。

setTimeout(function()
  window.location.reload();
);

【讨论】:

或者简单地说:setTimeout(location.reload) 原来的解决方案对我有用。使用常规的 location.reload() 可以在除 Firefox 之外的所有应用程序中使用,所以我很高兴你发布了这个。 几乎为我工作。在 Firefox 50.1.0 (Ubuntu 16.04) 中,这个答案没有任何作用。但是将其更改为 lambda 表达式就可以了:setTimeout(() =&gt; window.location.reload());.【参考方案3】:

你试过了吗?:

window.location = window.location;

显然你可以放下“窗口”,但我自己没有尝试过。

【讨论】:

这是做什么的? 它会在没有 POST 数据的情况下重新加载页面,而 reload() 将保留 POST 数据,据我所知,这是唯一的区别? 感谢您的调查,我尝试了这两个选项,但没有运气:-(,我还修改了一些代码。它现在是“window.location.reload(data);”,但最后同样的问题它不会自动重新加载【参考方案4】:

我在 Chrome 和 Firefox 中遇到了同样的问题。我能够通过让服务器响应页面的 url 来缓解这个问题。对于您的情况,您可以将响应作为用户状态的新值。举两个例子:

$.post('?action=' + myAction, function (data) 
        window.location.href = data;
    );

..和服务器响应

Response.Write("/yourUrl);
Response.End();

这消除了 Chrome 中的不一致,并且页面重新加载不会失败。

【讨论】:

【参考方案5】:

Look this 您可以通过将 forceGet 参数设置为 true 来强制重新加载以从服务器获取页面:

location.reload(true);

【讨论】:

【参考方案6】:

这对我来说适用于 Fire Fox 和 Crome,并且适用于 IE。

object.reload(forcedReload);

【讨论】:

【参考方案7】:

从我的角度来看,关键点是函数的位置对我来说必须高于调用发起的位置。认为浏览器从上到下解释 javascript,如果我的重新加载代码低于调用它的对象,它就会失败。如果我把代码放在上面,window.location.href = window.location.href;工作。

【讨论】:

当您建议“函数定义必须出现在函数调用之前”时,请注意这仅适用于函数表达式 (var my_function = function()),而不适用于函数声明 (function我的函数())。函数声明被提升,而函数表达式则不被提升;所以当你说'浏览器从上到下编译JS'(首先,浏览器解释JS,它们不编译它)时,这并不完全准确。 很公平,更新以反映解释而不是编译,同意 js 不编译。我添加了详细信息,因为我花了一些时间才弄清楚为什么我无法让页面重新加载,并且我认为我的解决方案可能对其他人很重要,如果他们有类似的问题。感谢老师的回复。【参考方案8】:

我刚刚找到的超级解决方案。

你必须模拟发布一个空表单。

HTML

<form id="myForm" action='@Url.Action("Details","Main", new  id = @Model.ID  )'></form>

JS

document.getElementById("myForm").submit();

【讨论】:

【参考方案9】:

我尝试了不同的答案,但对我有用的是强制重新加载的参数“真”

setTimeout(()=>
  window.location.reload(true);
);

【讨论】:

window.location.reload()和window.location.href区别

window.location.Reload()和window.location.href区别http://www.cnblogs.com/tearer/archive/2013/03/16/2963438.html首先介绍两个方法的语法:reload 方法,该方法强迫浏览器刷新当前页面。语法:location.reload([bForceGet])参数: bForceGet, 查看详情

window.location.href=window.location.href 和 window.location.reload() 的区别

】window.location.href=window.location.href和window.location.reload()的区别【英文标题】:Differencebetweenwindow.location.href=window.location.hrefandwindow.location.reload()【发布时间】:2011-01-2504:41:45【问题描述】:JavaScript的区别是什么window.loc 查看详情

window.location.reload()和window.location.href区别

window.location.Reload()应该是刷新.【相当于按页面刷新按钮】(如果有数据提交的话,会提示是否提交的(是和否选项))window.location.href=window.location.href;是定向url提交数据  他们最大区别是是否有数据提交: 前者提交数据的... 查看详情

window.location.reload()和window.location.href区别

...reload 方法,该方法强迫浏览器刷新当前页面。语法:location.reload([bForceGet])参数: bForceGet,可选参数,默认为false,从客户端缓存里取当前页。   true,则以GET 方式,从服务端取最新的页面,相当于客户端点击F5("刷... 查看详情

js刷新页面location.reload()

在javascript编程中,多使用location.reload实现页面刷新。例子:代码示例:window.location.href=window.location.href;window.location.reload; 经测试,这两句在某些情况下可以代替location.reload(true);而不会出现重试对话框达到刷新的效果在js中实现... 查看详情

window.location.reload 在各种设备和浏览器上随机运行

】window.location.reload在各种设备和浏览器上随机运行【英文标题】:window.location.reloadworkingrandomlyonvariousdevices&browsers【发布时间】:2018-12-2118:27:03【问题描述】:我已尝试四处寻找答案,并尝试了window.location.reload的许多变体,... 查看详情

在 $state.go 之后执行 $window.location.reload(true)

】在$state.go之后执行$window.location.reload(true)【英文标题】:Do$window.location.reload(true)after$state.go【发布时间】:2015-04-0314:16:31【问题描述】:我正在开发这个Ionic/Cordova应用程序,我必须在$state.go之后重新加载。我就是这样做的$state... 查看详情

带有清除缓存的 window.location.reload [重复]

】带有清除缓存的window.location.reload[重复]【英文标题】:window.location.reloadwithclearcache[duplicate]【发布时间】:2011-08-0823:11:38【问题描述】:我想使用JavaScript重新加载页面,但我也想清除缓存,因此在页面刷新时,页面会包含来自... 查看详情

jquery打开页面window.location和window.open的区别

参考技术Awindow.location="http://www.xxxxxxxx.net"跳转后有后退功能其实应该是window.location.hrefwindow.location.replace("http://www.xxxxxxxx.net")跳转后没有后退功能window.open("http://www.xxxxxxxx.net")要新的窗口打开链接这个一般用... 查看详情

为啥我在js里面用window.location.reload(true);不刷新页面?

...第二次的时候才有效果,但是火狐里面没有问题。window.location.reload()不要true解决方法:location.replace(location.href);换成这个看看js刷新页面location.reload()用法:代码示例:window.location.href=window.location.href; window.location.reload;1、经测... 查看详情

如何修复“收到响应前消息端口已关闭”。在 javascript 中的 window.location.reload() 之后

...复“收到响应前消息端口已关闭”。在javascript中的window.location.reload()之后【英文标题】:Howtofix"Themessageportclosedbeforearesponsewasreceived."afterwindow.location.reload()injavascript【发布时间】:2019-08-2411:10:27【问题描述】:我遇到了ja... 查看详情

dom-window下的常用子对象-location-刷新页面

1.刷新当前页面:(通过给location.href赋值的方式)window.location.href=""eg:window.location.href="http://www.baidu.com" 2.重新加载文档:(location.reload()方法)1)window.location.reload()及window.location.reload(false) & 查看详情

一个关于window.location.href=window.location.href的问题?

在使用window.location.href=window.location.href刷洗后,能够将数据提交到数据库中,在前台页面显示不了,当手动刷新时,会出现改变的结果,但是在后台数据库中,出现两条记录。请问各位大侠这是什么原因?改如何改?浏览器使用... 查看详情

html返回上一页,并且刷新

...,在返回上一页面后,还要刷新该怎么做??window.parent.location.href='b页面地址';可以在b页面载入的时候加入刷新操作,window.location.reload();或者history.go(0);返回上一页是history.go(-1);一般页面会自动刷新的,所以上面的window... 查看详情

请问在js里,window有多少种方法?

请问在js里,window有多少种方法?参考技术Awindow.location对象window.location对象用于获得当前页面的地址(URL),并把浏览器重定向到新的页面。window.location对象在编写时可不使用window这个前缀。location.hostname返回web主机的域名location.pa... 查看详情

php使用history.go();window.location.reload();返回页面刷新后会提示‘如图’不想再重复提交一次怎么办

...提示,这时候需要进行强制刷新的操作。只需要将window.location.reload()改为:window.location.href=window.location.href即可。参考技术A给表单加上token或者验证码,每次提交都验证一下,避免重复提交或者csrf 查看详情

在jquery中,怎样实现刷新页面的效果?

...果?就相当于按住F5刷新浏览器页面的效果。不能用window.location.reload();因为这个函数会把页面中隐藏表单的值清空掉。不需要使用jquery,使用javascript的setTimeout()即可实现:window.onload = function() setTimeout("location.reload()",2000);代码... 查看详情

html元素刷新方式

div的局部刷新$(".dl").load(location.href+".dl");全页面的刷新方法window.location.reload()刷新当前页面.parent.location.reload()刷新父亲对象(用于框架)opener.location.reload()刷新父窗口对象(用于单开窗口)top.location.reload()刷新最顶端对象(用于... 查看详情