JavaScript Window Location
在本教程中,您将了解 JavaScript 窗口位置对象。
位置对象
窗口的位置属性(即 window.location
)是对 Location 对象的引用; 它表示在该窗口中显示的文档的当前 URL。
由于 window 对象位于作用域链的顶部,因此 window.location
对象的属性可以在没有 window.
前缀的情况下访问,例如 window.location .href
可以写成 location.href
。 以下部分将向您展示如何使用窗口对象的位置对象属性获取页面的 URL 以及主机名、协议等。
获取当前页面 URL
您可以使用 window.location.href
属性来获取当前页面的整个 URL。
以下示例将在按钮单击时显示页面的完整 URL:
<script>
function getURL() {
alert("The URL of this page is: " + window.location.href);
}
</script>
<button type="button" onclick="getURL();">Get Page URL</button>
获取 URL 的不同部分
同样,你可以使用location对象的其他属性如protocol
, hostname
, port
, pathname
, search
等来获取URL的不同部分。
试试下面的例子,看看如何使用窗口的 location 属性。
// Prints complete URL
document.write(window.location.href);
// 打印协议,如 http: 或 https:
document.write(window.location.protocol);
// 使用 localhost 或 localhost:3000 等端口打印主机名
document.write(window.location.host);
// 打印主机名,如 localhost 或 www.example.com
document.write(window.location.hostname);
// 打印端口号如 3000
document.write(window.location.port);
// 打印路径名,如 /products/search.asp
document.write(window.location.pathname);
// 打印查询字符串,如 ?q=ipad
document.write(window.location.search);
// 打印片段标识符,如#featured
document.write(window.location.hash);
注意: 当你访问一个网站时,你总是连接到一个特定的端口(例如 http://localhost:3000)。 但是,大多数浏览器根本不会显示默认端口号,例如 HTTP 为 80,HTTPS 为 443。
加载新文档
您可以使用位置对象的 assign()
方法,即 window.location.assign()
从作为参数提供的 URL 加载另一个资源,例如 :
<script>
function loadHomePage() {
window.location.assign("http://www.qyoo.cn");
}
</script>
<button type="button" onclick="loadHomePage();">Load Home Page</button>
您也可以使用 replace()
方法来加载新文档,这与 assign()
几乎相同。 不同之处在于它不会在浏览器的历史记录中创建条目,这意味着用户将无法使用后退按钮导航到它。 这是一个例子:
<script>
function loadHomePage(){
window.location.replace("http://www.qyoo.cn");
}
</script>
<button type="button" onclick="loadHomePage();">Load Home Page</button>
或者,您可以使用 window.location.href
属性在窗口中加载新文档。 它产生与使用 assign()
方法相同的效果。 这是一个例子:
<script>
function loadHomePage() {
window.location.href = "http://www.qyoo.cn";
}
</script>
<button type="button" onclick="loadHomePage();">Load Home Page</button>
动态重新加载页面
reload()
方法可用于动态重新加载当前页面。
您可以选择指定布尔参数 true
或 false
。 如果参数为true
,该方法将强制浏览器从服务器重新加载页面。 如果它是 false
或未指定,浏览器可能会从其缓存中重新加载页面。 这是一个例子:
<script>
function forceReload() {
window.location.reload(true);
}
</script>
<button type="button" onclick="forceReload();">Reload Page</button>
注意: 调用 reload()
方法的结果与点击浏览器的 Reload/Refresh 按钮不同。 reload()
方法清除在某些浏览器中单击 "Reload/Refresh" 按钮后可能保留的表单控件值。