我试图在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调用但是不强制页面重新加载的任何想法?