window.location.replace()未在Google Chrome中触发

时间:2015-08-27 19:05:12

标签: javascript jquery html google-chrome

我试图在URL GET字符串中使用不同的参数重新加载网页(当条件合适时)。以下代码适用于除Google Chrome之外的所有浏览器。在Chrome中,它在第一次发生时不起作用,但如果我重新加载页面,那么它总是有效。

// Grab the current URL and put it into a string for evaluation. 
var url = window.location.toString();

// See if the sort parameter is in the URL.  If so, then hide the page,
// change the sort value, and replace this page with the right one.
if (url.indexOf("sort=rc") == -1 && (localStorage.getItem("sortValue") != "Room" || localStorage.getItem("sortValue") == null)) {
    Bootstrapper.MVT.injectCSS("body { display:none; }");
    var newUrl= url.replace("sort=rt", "sort=rc");
    window.location.replace(newUrl);
}

当我使用Chrome调试器逐步执行代码时,它会正确进入if语句,隐藏标记,更改URL以获得新的排序值,并且似乎运行window.location.replace调用但不会重新加载页面。页面完成加载,但由于显示无调用,它是空白的。如果我单击重新加载按钮,页面将重新加载所需的排序值,一切都会显示,并且在清除缓存之前我再也没有遇到此问题。

关于为什么Chrome会通过window.location.replace调用但是不强制页面重新加载的任何想法?

0 个答案:

没有答案