我需要对整个window.location
(整个路线)进行修改,而不更新类似于history.pushState
的内容,但我找不到一些可行的方法。
我尝试使用definegetter
进行修改但是我发现此功能仅用于文档类型参数。是否可以使用javascript修改location参数?
答案 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
});