📅  最后修改于: 2023-12-03 14:43:32.206000             🧑  作者: Mango
在编写 JavaScript 程序时,有时会需要通过更改 URL 来实现页面的导航或更新。JavaScript 提供了一些内置的方法和属性来管理和更改 URL。
下面是一些常用的方法和属性,以及如何使用它们来更改 URL。
window.location
对象window.location
是一个表示当前页面 URL 的对象。通过该对象,可以获取和修改页面的 URL。
要获取当前页面的 URL,可以直接访问 window.location.href
属性。
const currentUrl = window.location.href;
console.log(currentUrl);
要修改当前页面的 URL,可以直接对 window.location
进行赋值。
window.location = 'https://www.example.com';
这将会导航到指定的 URL。
要在当前 URL 上添加参数,可以直接修改 window.location.search
属性。
window.location.search += '&key=value';
这将会在当前 URL 的查询参数中添加一个新的键值对。
要重定向到一个新的 URL,可以使用 window.location.replace()
方法。
window.location.replace('https://www.example.com');
这会立即将页面导航到指定的 URL,并且浏览器的历史记录中不会保留原始页面。
history
对象history
是一个表示浏览器历史记录的对象,可以通过它来修改 URL,并实现在浏览器历史中前进或后退。
要在浏览器历史中前进或后退,可以使用 history.go()
方法,传递一个整数作为参数来指定需要前进或后退的步数。
history.go(-1); // 后退一页
history.go(1); // 前进一页
要修改当前页面的 URL,但不导航到新的页面,可以使用 history.replaceState()
方法。
history.replaceState(null, '', '/new-url');
这会将当前页面的 URL 修改为 /new-url
,但不会导航到该 URL。
要在浏览器历史记录中添加一个新的记录,并导航到新的 URL,可以使用 history.pushState()
方法。
history.pushState(null, '', '/new-url');
这会在浏览器历史记录中添加一个新的记录,并且页面导航到 /new-url
。
URL
对象JavaScript 还提供了 URL
对象,用于解析和操作 URL。
URL
对象要创建一个 URL
对象,可以使用 new URL()
构造函数,并传入需要解析的 URL。
const url = new URL('https://www.example.com');
console.log(url);
URL
对象提供了一些方法和属性,用于获取和修改 URL 的各个部分,例如协议、主机、路径等。
console.log(url.protocol); // 输出:"https:"
console.log(url.host); // 输出:"www.example.com"
console.log(url.pathname); // 输出:"/"
要修改 URL 的各个部分,可以直接对相应的属性进行赋值。
url.protocol = 'http:';
url.host = 'subdomain.example.com';
url.pathname = '/path';
要在 URL 上添加参数,可以使用 URLSearchParams
对象。
const params = new URLSearchParams(url.search);
params.append('key', 'value');
url.search = params.toString();
这将在 URL 的查询参数中添加一个新的键值对。
以上是一些在 JavaScript 中更改 URL 的常用方法和技巧。使用这些方法,你可以动态地更新 URL,实现页面的导航和参数传递等功能。
注意:在部分环境中,如 Node.js 等,
window.location
和部分history
方法可能无效或不支持。请根据实际情况调整代码。
希望这些信息对你有所帮助!