首頁 web前端 js教程 Window物件在前端領域的角色

Window物件在前端領域的角色

Nov 26, 2019 pm 05:24 PM
javascript window 前端

Window物件在前端領域的角色

特殊的window

提起window,在網頁當中很常見,例如像這樣:

window.onload=function(){
//执行函数体
}
登入後複製

這段程式碼的意思是當網頁內容載入完成後要做什麼。

在js的領域,window物件有著雙重角色,既是用來存取瀏覽器視窗的接口,又是Global物件。 【相關課程推薦:JavaScript影片教學

也正因為此,所有全域作用域中宣告的變數、函數都會變成window物件的屬性與方法。

例如這樣:

var age = 29;
function sayAge(){
    alert(this.age);
}
alert(window.age); //29
sayAge();         //29
window.sayAge();  //29
登入後複製

但二者也不完全等同,全域變數不能透過delete刪除,而直接在window上定義的屬性可以。

歷史遺留

早期的網頁中會使用較多的視窗和框架,在同一個視窗內展示有嵌套形式的網頁,以及各種彈出窗口alert、confirm、prompt等,給用戶輸入或確認訊息,但隨著網頁開發技術和設計的發展,它們已經難尋踪跡,所以這裡不重點說。

location物件

基本屬性

location是最有用的BOM物件之一,它提供了當前視窗所載入文件的資訊和導航功能。它的主要用途都跟url有關:

  ● hash:返回url中#符號後面的字符,如果沒有,返回空。

  ● host/hostname:傳回伺服器名稱或連接埠號碼之類。

  ● href:返回完整url

  ● port:傳回指定連接埠號碼

  ● protocol:傳回使用的協定

   ● protocol:傳回使用的協定

    search:返回的查詢字串,即從問號開始到末尾的所有內容

位置操作

location可以透過多種方式改變瀏覽器的位置,最常用的是assign ()方法,例如:

location.assign("http://www.baidu.com");
登入後複製

這樣就會馬上開啟新的url,並在瀏覽歷史中增加一筆記錄,下面兩行程式碼等效:

window.location = "http://www.baidu.com";
location.href = "http://www.baidu.com";
登入後複製

最常見的是location .href。

當然,修改其他屬性也可以改變當前加載的頁面,透過任何一種方式修改url之後,都會有一條新記錄生成,用戶可以透過點擊後退按鈕導航到前一個頁面,不過,有時候我們不希望這種操作發生,可以使用replace()方法。像下面這樣:

location.replace("http://www.baidu.com");
登入後複製

它只接收一個參數,即導航到的url,且不會產生記錄,使用者不能返回前一個頁面。

與位置有關的另一個方法是reload(),作用就是它的字面意思,重新加載當前頁,但這裡有一點點小講究,如果僅僅是reload,不帶參數,頁面會從瀏覽器快取中重新加載,如果強制從伺服器重新加載,則需要傳遞參數,像這樣:

location.reload(true);
登入後複製
history物件

##history保留使用者上網的記錄,每個瀏覽器視窗、標籤頁,都有自己的history物件與特定的window物件相關聯,出於安全考慮,開發人員一般無法得知使用者瀏覽過哪些網頁,但仍有辦法實作前進後退功能,方法就是go()。例如這樣:

history.go(-1);
history.go(1);
登入後複製

其參數不僅是數字,也可以是字串,瀏覽器會跳到歷史記錄中包含該字串的第一個位置,可以是前進,也可能是後退。例如

history.go("baidu.com");
登入後複製

另外,前進或後退也有更直接的方法back()、forward()。

除此之外,history還有個length屬性,保存歷史記錄的數量,如果你想確定使用者是否一開始就打開了你的頁面,可以用到它。

if(history.length == 0){
    //干你想干的事
}
登入後複製
history物件不是特別常用,但在某些特殊用途的設計當中,還是要請它出馬來搞定問題。

總結

window物件在行動互聯網浪潮下的地位已經不像PC端那麼重,更多涉及的是功能和偵測方面,涉及交互較多,其他方面則交由功能更豐富的自訂的程式碼來實現了。

儘管如此,window對像不只這麼簡單,還有一個重要的navigator對象,但說到它內容有有點多,後續單獨一篇文章跟大家分享。

本文來自 js教學

 欄目,歡迎學習! ###

以上是Window物件在前端領域的角色的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

WebSocket與JavaScript:實現即時監控系統的關鍵技術 WebSocket與JavaScript:實現即時監控系統的關鍵技術 Dec 17, 2023 pm 05:30 PM

WebSocket與JavaScript:實現即時監控系統的關鍵技術引言:隨著互聯網技術的快速發展,即時監控系統在各個領域中得到了廣泛的應用。而實現即時監控的關鍵技術之一就是WebSocket與JavaScript的結合使用。本文將介紹WebSocket與JavaScript在即時監控系統中的應用,並給出程式碼範例,詳細解釋其實作原理。一、WebSocket技

PHP與Vue:完美搭檔的前端開發利器 PHP與Vue:完美搭檔的前端開發利器 Mar 16, 2024 pm 12:09 PM

PHP與Vue:完美搭檔的前端開發利器在當今網路快速發展的時代,前端開發變得愈發重要。隨著使用者對網站和應用的體驗要求越來越高,前端開發人員需要使用更有效率和靈活的工具來創建響應式和互動式的介面。 PHP和Vue.js作為前端開發領域的兩個重要技術,搭配起來可以稱得上是完美的利器。本文將探討PHP和Vue的結合,以及詳細的程式碼範例,幫助讀者更好地理解和應用這兩

前端面試官常問的問題 前端面試官常問的問題 Mar 19, 2024 pm 02:24 PM

在前端開發面試中,常見問題涵蓋廣泛,包括HTML/CSS基礎、JavaScript基礎、框架和函式庫、專案經驗、演算法和資料結構、效能最佳化、跨域請求、前端工程化、設計模式以及新技術和趨勢。面試官的問題旨在評估候選人的技術技能、專案經驗以及對行業趨勢的理解。因此,應試者應充分準備這些方面,以展現自己的能力和專業知識。

JavaScript與WebSocket:打造高效率的即時天氣預報系統 JavaScript與WebSocket:打造高效率的即時天氣預報系統 Dec 17, 2023 pm 05:13 PM

JavaScript和WebSocket:打造高效的即時天氣預報系統引言:如今,天氣預報的準確性對於日常生活以及決策制定具有重要意義。隨著技術的發展,我們可以透過即時獲取天氣數據來提供更準確可靠的天氣預報。在本文中,我們將學習如何使用JavaScript和WebSocket技術,來建立一個高效的即時天氣預報系統。本文將透過具體的程式碼範例來展示實現的過程。 We

簡易JavaScript教學:取得HTTP狀態碼的方法 簡易JavaScript教學:取得HTTP狀態碼的方法 Jan 05, 2024 pm 06:08 PM

JavaScript教學:如何取得HTTP狀態碼,需要具體程式碼範例前言:在Web開發中,經常會涉及到與伺服器進行資料互動的場景。在與伺服器進行通訊時,我們經常需要取得傳回的HTTP狀態碼來判斷操作是否成功,並根據不同的狀態碼來進行對應的處理。本篇文章將教你如何使用JavaScript來取得HTTP狀態碼,並提供一些實用的程式碼範例。使用XMLHttpRequest

Django是前端還是後端?一探究竟! Django是前端還是後端?一探究竟! Jan 19, 2024 am 08:37 AM

Django是一個由Python編寫的web應用框架,它強調快速開發和乾淨方法。儘管Django是web框架,但要回答Django是前端還是後端這個問題,需要深入理解前後端的概念。前端是指使用者直接和互動的介面,後端是指伺服器端的程序,他們透過HTTP協定進行資料的互動。在前端和後端分離的情況下,前後端程式可以獨立開發,分別實現業務邏輯和互動效果,資料的交

Go語言前端技術探秘:前端開發新視野 Go語言前端技術探秘:前端開發新視野 Mar 28, 2024 pm 01:06 PM

Go語言作為一種快速、高效的程式語言,在後端開發領域廣受歡迎。然而,很少有人將Go語言與前端開發聯繫起來。事實上,使用Go語言進行前端開發不僅可以提高效率,還能為開發者帶來全新的視野。本文將探討使用Go語言進行前端開發的可能性,並提供具體的程式碼範例,幫助讀者更了解這一領域。在傳統的前端開發中,通常會使用JavaScript、HTML和CSS來建立使用者介面

Django:前端和後端開發都能搞定的神奇框架! Django:前端和後端開發都能搞定的神奇框架! Jan 19, 2024 am 08:52 AM

Django:前端和後端開發都能搞定的神奇框架! Django是一個高效、可擴展的網路應用程式框架。它能夠支援多種Web開發模式,包括MVC和MTV,可以輕鬆地開發出高品質的Web應用程式。 Django不僅支援後端開發,還能夠快速建構出前端的介面,透過模板語言,實現靈活的視圖展示。 Django把前端開發和後端開發融合成了一種無縫的整合,讓開發人員不必專門學習

See all articles