📜  js 更改 url - Javascript (1)

📅  最后修改于: 2023-12-03 14:43:32.206000             🧑  作者: Mango

使用 JavaScript 更改 URL

在编写 JavaScript 程序时,有时会需要通过更改 URL 来实现页面的导航或更新。JavaScript 提供了一些内置的方法和属性来管理和更改 URL。

下面是一些常用的方法和属性,以及如何使用它们来更改 URL。

1. window.location 对象

window.location 是一个表示当前页面 URL 的对象。通过该对象,可以获取和修改页面的 URL。

1.1 获取当前 URL

要获取当前页面的 URL,可以直接访问 window.location.href 属性。

const currentUrl = window.location.href;
console.log(currentUrl);
1.2 修改 URL

要修改当前页面的 URL,可以直接对 window.location 进行赋值。

window.location = 'https://www.example.com';

这将会导航到指定的 URL。

1.3 在当前 URL 上添加参数

要在当前 URL 上添加参数,可以直接修改 window.location.search 属性。

window.location.search += '&key=value';

这将会在当前 URL 的查询参数中添加一个新的键值对。

1.4 重定向到新的 URL

要重定向到一个新的 URL,可以使用 window.location.replace() 方法。

window.location.replace('https://www.example.com');

这会立即将页面导航到指定的 URL,并且浏览器的历史记录中不会保留原始页面。

2. history 对象

history 是一个表示浏览器历史记录的对象,可以通过它来修改 URL,并实现在浏览器历史中前进或后退。

2.1 在浏览器历史中前进或后退

要在浏览器历史中前进或后退,可以使用 history.go() 方法,传递一个整数作为参数来指定需要前进或后退的步数。

history.go(-1); // 后退一页
history.go(1); // 前进一页
2.2 修改当前页面的 URL,但不导航到新的页面

要修改当前页面的 URL,但不导航到新的页面,可以使用 history.replaceState() 方法。

history.replaceState(null, '', '/new-url');

这会将当前页面的 URL 修改为 /new-url,但不会导航到该 URL。

2.3 在浏览器历史中添加新的记录

要在浏览器历史记录中添加一个新的记录,并导航到新的 URL,可以使用 history.pushState() 方法。

history.pushState(null, '', '/new-url');

这会在浏览器历史记录中添加一个新的记录,并且页面导航到 /new-url

3. 使用 URL 对象

JavaScript 还提供了 URL 对象,用于解析和操作 URL。

3.1 创建一个 URL 对象

要创建一个 URL 对象,可以使用 new URL() 构造函数,并传入需要解析的 URL。

const url = new URL('https://www.example.com');
console.log(url);
3.2 获取和修改 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';
3.3 在 URL 上添加参数

要在 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 方法可能无效或不支持。请根据实际情况调整代码。

希望这些信息对你有所帮助!