是否可以在不重定向页面的情况下修改window.location的内容?

时间:2016-12-26 22:30:42

标签: javascript

我需要对整个window.location(整个路线)进行修改,而不更新类似于history.pushState的内容,但我找不到一些可行的方法。

我尝试使用definegetter进行修改但是我发现此功能仅用于文档类型参数。是否可以使用javascript修改location参数?

2 个答案:

答案 0 :(得分:1)

不幸的是,没有办法以你希望的方式使用window.location。

更改网页的网址会导致浏览器发出新请求。

最常用的使用方法是让服务器使用类似URL Rewrite for IIS的内容预先准备网址,如果您想要进行一些自定义。

答案 1 :(得分:1)

您可以使用window.location.hash和哈希参数,例如your-page?#id=1,user=gabriel。请记住,window.location.hash只是一个纯文本。为了更改它的一部分,您需要解析它,更改一个值,然后再将字符串化

此外,每当哈希参数发生变化时,您都可以执行操作:

window.addEventListener("hashchange", function() {
   // Do stuff here whenever hash changes
});
相关问题