JavaScript 視窗位置
在本教程中,你將瞭解 JavaScript 視窗位置物件。
位置物件
視窗的位置屬性(即 window.location
)是對位置 Location
物件的引用; 它表示該視窗中顯示的文件的當前 URL。
由於 window 物件位於作用域鏈的頂部,因此 window.location
可以在沒有 window.
字首的情況下訪問物件的屬性,例如 window.location.href
可以寫為 location.href
。以下部分將向你展示如何使用 window
物件的 location object
屬性獲取頁面的 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 的不同部分
類似地,可以使用位置物件的其他屬性,例如 protocol
, hostname
, port
, pathname
, search
等等,以獲得 URL 的不同部分。
請嘗試以下示例,以瞭解如何使用視窗的 location 屬性。
// Prints complete URL
document.write(window.location.href);
// Prints protocol like http: or https:
document.write(window.location.protocol);
// Prints hostname with port like localhost or localhost:3000
document.write(window.location.host);
// Prints hostname like localhost or www.example.com
document.write(window.location.hostname);
// Prints port number like 3000
document.write(window.location.port);
// Prints pathname like /products/search.php
document.write(window.location.pathname);
// Prints query string like ?q=ipad
document.write(window.location.search);
// Prints fragment identifier like #featured
document.write(window.location.hash);
注意: 當你訪問網站時,你始終連線到特定埠(例如 http://localhost:3000
)。但是,大多數瀏覽器根本不會顯示預設埠號,例如,HTTP 為 80,HTTPS 為 443。
載入新檔案
你可以使用 location 物件的 assign()
方法,比如 window.location.assign()
來載入作為引數提供的 URL 的另一個資源,例如:
<script>
function loadHomePage() {
window.location.assign("http://www.tastones.com");
}
</script>
<button type="button" onclick="loadHomePage();">Load Home Page</button>
你也可以使用 replace()
方法載入幾乎與 assign()
相同的新文件。不同之處在於它不會在瀏覽器的歷史記錄中建立條目,這意味著使用者將無法使用後退按鈕導航到該條目。這是一個例子:
<script>
function loadHomePage(){
window.location.replace("http://www.tastones.com");
}
</script>
<button type="button" onclick="loadHomePage();">Load Home Page</button>
或者,你可以使用 window.location.href
屬性在視窗中載入新文件。它產生與使用 assign()
方法相同的效果。這是一個例子:
<script>
function loadHomePage() {
window.location.href = "http://www.tastones.com";
}
</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()
方法清除表單控制元件值,而在某些瀏覽器中單擊“重新載入/重新整理”按鈕後可能會保留該值。