window.location.href
是 JavaScript 中用来获取或设置浏览器当前页面的 URL(地址)的属性。它属于 window.location
对象的一部分。
基本用途:
- 获取当前页面的 URL:
当你访问window.location.href
时,它会返回浏览器当前的 URL。console.log(window.location.href); // 输出当前页面的 URL
例如,如果当前页面的 URL 是https://www.example.com/index.html
,那么window.location.href
的返回值将是"https://www.example.com/index.html"
。 - 设置页面的 URL:
当你为window.location.href
赋值时,它会改变浏览器的地址栏并加载新的页面。window.location.href = 'https://www.example.com'; // 跳转到新的页面
在上面的例子中,页面会跳转到"https://www.example.com"
。
常见的操作:
1. 跳转到新的页面
window.location.href = 'https://www.example.com';
这将使浏览器跳转到 "https://www.example.com"
,类似于用户在地址栏中输入一个新的 URL。
2. 重新加载当前页面
window.location.href = window.location.href;
这将导致页面重新加载,相当于按下浏览器的刷新按钮。
3. 跳转到页面的锚点(Hash)
如果你想跳转到页面的某个锚点(例如,<a id="section1">
),可以通过修改 URL 中的 #
部分:
window.location.href = '#section1'; // 跳转到页面中的 section1
4. 获取当前 URL 的各个部分
window.location
对象不仅可以通过 href
访问整个 URL,还提供了很多其他属性,允许你获取 URL 的不同部分:
window.location.protocol
:协议部分(例如,http:
或https:
)window.location.hostname
:主机名部分(例如,www.example.com
)window.location.port
:端口号(如果有的话)window.location.pathname
:路径部分(例如,/index.html
)window.location.search
:查询字符串(例如,?q=search
)window.location.hash
:URL 的锚点部分(例如,#section1
)
例如:
console.log(window.location.protocol); // https:
console.log(window.location.hostname); // www.example.com
console.log(window.location.pathname); // /index.html
console.log(window.location.search); // ?q=search
console.log(window.location.hash); // #section1
5. 重定向到一个新页面并替换历史记录
如果你想重定向到一个新的页面并替换当前的浏览历史记录(即不允许用户点击浏览器的“返回”按钮回到前一个页面),可以使用 window.location.replace()
:
window.location.replace('https://www.example.com');
这个方法会将当前页面替换为新的页面,而不会保留原页面在浏览历史中的记录。
6. 打开新页面而不影响当前页面
如果你希望打开一个新的页面,但不影响当前页面的加载(类似于在新标签页打开链接),可以使用 window.location.href
或者 window.open()
:
// 在当前页面跳转
window.location.href = 'https://www.example.com'; // 当前页跳转
// 在新标签页打开链接
window.open('https://www.example.com', '_blank'); // 新标签页打开
总结:
window.location.href
用于获取和设置浏览器当前的 URL。- 可以通过设置
window.location.href
来实现页面跳转。 - 通过
window.location.replace()
可以实现不保留历史记录的跳转。 - 通过
window.open()
可以在新标签页打开新页面。
如果你有其他关于 window.location
的问题,或想了解更详细的用法,随时告诉我!
发表回复