JAVASCRIPT 基础教程
JAVASCRIPT & DOM
JAVASCRIPT & BOM
JAVASCRIPT 高级教程
JAVASCRIPT 示例
JAVASCRIPT 参考

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() 方法可用于动态重新加载当前页面。

您可以选择指定布尔参数 truefalse。 如果参数为true,该方法将强制浏览器从服务器重新加载页面。 如果它是 false 或未指定,浏览器可能会从其缓存中重新加载页面。 这是一个例子:

<script>
function forceReload() {
    window.location.reload(true);
}
</script>
 
<button type="button" onclick="forceReload();">Reload Page</button>

注意: 调用 reload() 方法的结果与点击浏览器的 Reload/Refresh 按钮不同。 reload() 方法清除在某些浏览器中单击 "Reload/Refresh" 按钮后可能保留的表单控件值。

Advertisements