document.location
是一个只读属性,它返回当前文档的 URL。如果你想更改当前文档的 URL,你可以设置 document.location.href
属性。这会导致浏览器立即导航到新的 URL。
document.location.href
设置新的 URL,代码简单,易于理解和实现。document.location.href
会立即触发浏览器导航,用户体验流畅。document.location
对象。document.location
对象包含以下属性:
href
:整个 URL。protocol
:URL 的协议部分(例如 http:
或 https:
)。hostname
:URL 的主机名部分(例如 www.example.com
)。port
:URL 的端口号(如果未指定,则返回空字符串)。pathname
:URL 的路径名部分。search
:URL 的查询字符串部分(包括开头的 ?
)。hash
:URL 的片段标识符部分(包括开头的 #
)。document.location.href
实现页面跳转。document.location.href
。document.location.hash
实现页面内容的无刷新切换。原因:直接更改 document.location.href
会导致浏览器历史记录中添加一个新的条目,用户点击浏览器的后退按钮时无法返回到之前的页面。
解决方法:使用 window.history.pushState
或 window.history.replaceState
方法来更改 URL,这样可以避免在历史记录中添加新的条目。
// 使用 pushState 添加新的历史记录条目
window.history.pushState({}, '', '/new-url');
// 使用 replaceState 替换当前的历史记录条目
window.history.replaceState({}, '', '/new-url');
原因:某些情况下,浏览器可能不会立即刷新页面,导致 URL 更改但页面内容未更新。
解决方法:手动触发页面刷新。
document.location.reload();
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document Location Example</title>
</head>
<body>
<button onclick="changeLocation()">Change Location</button>
<script>
function changeLocation() {
// 更改 URL 并添加新的历史记录条目
window.history.pushState({}, '', '/new-url');
}
</script>
</body>
</html>
领取专属 10元无门槛券
手把手带您无忧上云