JavaScript中Document對象常見的的屬性分析實例詳解
JavaScript中的Document對象是網(wǎng)頁開發(fā)的核心接口,作為DOM(文檔對象模型)的根節(jié)點,它為開發(fā)者提供了操作HTML文檔的橋梁。通過Document對象,可以訪問和修改頁面的結構、內(nèi)容與樣式,例如利用document.getElementById或document.querySelector獲取元素,通過document.title或document.cookie讀寫文檔信息,實現(xiàn)動態(tài)更新、表單驗證、用戶交互響應等功能。其豐富的屬性不僅涵蓋了文檔的基本元數(shù)據(jù),如URL、標題、字符集、加載狀態(tài)等,還提供了對頁面元素集合的直接訪問,如forms、images、links等,極大提升了開發(fā)效率和代碼的可操作性。在現(xiàn)代前端開發(fā)中,Document對象是實現(xiàn)動態(tài)網(wǎng)頁和單頁應用(SPA)不可或缺的基礎,幾乎所有與頁面交互的JavaScript邏輯都依賴于它。
隨著Web標準的演進,Document對象也在不斷擴展和完善。W3C和WHATWG持續(xù)推動DOM規(guī)范的發(fā)展,使其支持更多現(xiàn)代Web特性,如Shadow DOM、MutationObserver等,增強了對復雜應用狀態(tài)的監(jiān)聽與控制能力。未來,Document對象將更加注重性能優(yōu)化、安全性和跨平臺兼容性,例如通過更高效的查詢方法、更精細的權限控制來提升用戶體驗。同時,在Web Components、漸進式Web應用(PWA)等新興技術中,Document對象將繼續(xù)扮演關鍵角色,成為連接JavaScript與網(wǎng)頁內(nèi)容的核心樞紐。
下面,對JavaScript中Document對象常見的屬性進行逐一分析講解:
第一部分:文檔元數(shù)據(jù)與位置 (1-5)
1、document.title
- 含義:獲取或設置當前文檔的標題,也就是顯示在瀏覽器標簽頁上的文字。
- 詞源:Title 在英文中意為“標題、名稱”。
- 語法:
- 獲取:
let pageTitle = document.title; - 設置:
document.title = '新標題';
- 獲取:
- 參數(shù)及說明:它是一個字符串。設置時會覆蓋 HTML 中
<title>標簽的內(nèi)容,但不會修改 DOM 樹中的實際節(jié)點值(只是同步了顯示)。 - 例子:
console.log(document.title); // 輸出:當前頁面的標簽名 document.title = "歡迎光臨我的網(wǎng)站"; // 瀏覽器標簽頁上的文字立刻改變
2、document.URL
- 含義:返回當前文檔的完整 URL 地址(只讀)。
- 詞源:Uniform Resource Locator(統(tǒng)一資源定位器)的縮寫。
- 語法:
let currentUrl = document.URL; - 參數(shù)及說明:它是一個只讀字符串,包含協(xié)議、主機、端口、路徑、查詢參數(shù)和哈希。
- 例子:
// 假設當前地址是 https://example.com/page?id=1#section console.log(document.URL); // 輸出:https://example.com/page?id=1#section // document.URL = “新地址”; // 這樣做是無效的,它不可寫
3、document.domain
- 含義:獲取或設置當前文檔的域名。
- 詞源:Domain(域名)。
- 語法:
let currentDomain = document.domain;或document.domain = 'example.com'; - 參數(shù)及說明:它是一個字符串。主要用于同源策略的限制。在二級域名不同的跨子域通信中(如
a.example.com和b.example.com),可以將兩邊都設置為example.com來實現(xiàn)通信。現(xiàn)在該屬性在現(xiàn)代瀏覽器中為了安全已被嚴格限制(通常只能設為更高級別的相同后綴,且不能設置為頂級域名)。 - 例子:
console.log(document.domain); // 假設輸出:'www.example.com' // 如果要與子域 api.example.com 通信,可以設置: // document.domain = 'example.com';
4、document.referrer
- 含義:返回鏈接到當前頁面的那個頁面的 URL(即來源頁面地址,只讀)。
- 詞源:Referrer(引薦人,來源)。
- 語法:
let referringPage = document.referrer; - 參數(shù)及說明:它是一個字符串。如果是直接打開頁面(如輸入網(wǎng)址或書簽),則返回空字符串
""。 - 例子:
// 如果你從 google.com 搜索后點擊鏈接進來 console.log(document.referrer); // 輸出:'https://www.google.com/'
5、document.cookie
- 含義:獲取或設置與當前文檔相關聯(lián)的 HTTP Cookie。
- 詞源:Cookie(小甜餅,網(wǎng)絡數(shù)據(jù)包)。
- 語法:
- 讀?。?code>let allCookies = document.cookie;
- 寫入:
document.cookie = “name=value; expires=date; path=path”;
- 參數(shù)及說明:讀取時返回包含所有 Cookie 的字符串(格式如
key1=value1; key2=value2)。寫入時是追加或修改,而不是覆蓋全部。 - 例子:
console.log(document.cookie); // 輸出:'username=John; theme=dark' // 設置一個新 cookie document.cookie = “l(fā)anguage=zh-CN; path=/”;
第二部分:文檔元素集合 (6-12)
6、document.body
- 含義:返回當前文檔的
<body>元素。 - 詞源:Body(身體、主體)。
- 語法:
let bodyElement = document.body; - 參數(shù)及說明:它是一個
HTMLBodyElement對象。如果是框架集(Frameset)頁面,可能返回<frameset>元素。 - 例子:
document.body.style.backgroundColor = 'lightblue'; // 讓頁面背景變藍
7、document.head
- 含義:返回當前文檔的
<head>元素。 - 詞源:Head(頭部)。
- 語法:
let headElement = document.head; - 參數(shù)及說明:它是一個
HTMLHeadElement對象。 - 例子:
console.log(document.head.innerHTML); // 查看 head 里有什么
8、document.forms
- 含義:返回包含當前文檔中所有
<form>元素的集合(HTMLCollection)。 - 詞源:Forms(表單,復數(shù))。
- 語法:
let formCollection = document.forms; - 參數(shù)及說明:可以通過索引(
[0])或表單的name屬性([“formName”])訪問具體的表單。 - 例子:
let firstForm = document.forms[0]; // 獲取第一個表單 let loginForm = document.forms['loginForm']; // 獲取 name=“l(fā)oginForm” 的表單
9、document.images
- 含義:返回包含當前文檔中所有
<img>元素的集合(HTMLCollection)。 - 詞源:Images(圖像,復數(shù))。
- 語法:
let imageCollection = document.images; - 參數(shù)及說明:常用于遍歷所有圖片,統(tǒng)計數(shù)量或懶加載。
- 例子:
console.log(document.images.length); // 輸出頁面中圖片的總數(shù)
for (let img of document.images) {
console.log(img.src);
}10、document.links
- 含義:返回包含當前文檔中所有帶有
href屬性的<a>和<area>元素的集合。 - 詞源:Links(鏈接,復數(shù))。
- 語法:
let linkCollection = document.links; - 參數(shù)及說明:只包含有具體地址的鏈接錨點。
- 例子:
document.links[0].href = 'https://newsite.com'; // 修改第一個鏈接的地址
11、document.anchors
- 含義:返回包含當前文檔中所有帶有
name屬性的<a>元素的集合。 - 詞源:Anchors(錨點,復數(shù))。
- 參數(shù)及說明:在現(xiàn)代 HTML5 中,
name屬性在<a>上已不推薦使用,通常用id代替,因此這個集合在現(xiàn)代頁面中可能為空。 - 例子:
// 如果有一個 <a name=“section1”></a> console.log(document.anchors[‘section1']); // 可以獲取到
12、document.scripts
- 含義:返回包含當前文檔中所有
<script>元素的集合。 - 詞源:Scripts(腳本,復數(shù))。
- 語法:
let scriptCollection = document.scripts; - 參數(shù)及說明:常用于動態(tài)分析頁面加載了哪些腳本。
- 例子:
console.log('頁面加載了 ' + document.scripts.length + ' 個 JS 文件');第三部分:文檔結構與視圖 (13-17)
13、document.doctype
- 含義:返回當前文檔的文檔類型聲明(Document Type Declaration,即
<!DOCTYPE html>)。 - 詞源:Doc(Document 縮寫)+ Type(類型)。
- 語法:
let doctype = document.doctype; - 參數(shù)及說明:返回一個
DocumentType對象,如果沒有聲明則返回null。 - 例子:
console.log(document.doctype.name); // 輸出:'html' (如果是 HTML5 標準)
14、document.documentElement
- 含義:返回當前文檔的根元素,即
<html>標簽。 - 詞源:Document(文檔)+ Element(元素)。
- 語法:
let htmlElement = document.documentElement; - 參數(shù)及說明:這是獲取整個 HTML 文檔根節(jié)點的標準方法。常用于獲取視口高度等。
- 例子:
let fullPageHeight = document.documentElement.scrollHeight; // 獲取整個文檔滾動高度
15、document.defaultView
- 含義:返回當前文檔所關聯(lián)的 window 對象。
- 詞源:Default(默認)+ View(視圖)。
- 語法:
let win = document.defaultView; - 參數(shù)及說明:在瀏覽器中,這通常等價于
window對象。在 iframe 中,可以用來獲取 iframe 內(nèi)部的全局對象。 - 例子:
let isChrome = document.defaultView.navigator.userAgent.includes('Chrome');16、document.activeElement
- 含義:返回當前文檔中獲得焦點(被選中、正在輸入)的元素。
- 詞源:Active(活躍的)+ Element(元素)。
- 語法:
let activeEl = document.activeElement; - 參數(shù)及說明:常用于表單驗證或 UI 狀態(tài)判斷。默認情況下,如果沒有任何焦點,
body元素可能被返回。 - 例子:
if (document.activeElement.id === 'username') {
console.log('用戶正在輸入用戶名');
}17、document.baseURI
- 含義:返回文檔的絕對基礎 URL(只讀)。
- 詞源:Base(基礎)+ URI(統(tǒng)一資源標識符)。
- 語法:
let baseUri = document.baseURI; - 參數(shù)及說明:通常由頁面 URL 和
<base>標簽決定。如果沒有<base>標簽,它等同于document.URL。 - 例子:
// 如果頁面有 <base href=“https://example.com/newbase/”> console.log(document.baseURI); // 輸出:'https://example.com/newbase/'
第四部分:編碼與狀態(tài) (18-20)
18、document.charset / 19、document.characterSet
- 含義:返回文檔使用的字符編碼(如 “UTF-8”, “GB2312”)。
- 詞源:Character Set(字符集)。
- 語法:
let encoding = document.characterSet; - 參數(shù)及說明:這兩個屬性通常返回相同的值,
characterSet是標準屬性。 - 例子:
console.log(document.characterSet); // 輸出:'UTF-8'
20、document.readyState
- 含義:返回當前文檔的加載狀態(tài)。
- 詞源:Ready(準備就緒)+ State(狀態(tài))。
- 語法:
let state = document.readyState; - 參數(shù)及說明:有三個可能的值:
loading:正在加載。interactive:文檔解析完成,但圖片、樣式等仍在加載。complete:文檔和所有子資源加載完成。
- 例子:
if (document.readyState === 'complete') {
console.log('頁面完全加載好了');
}第五部分:文件信息與遺留屬性 (21-29)
注意:fileCreatedDate, fileModifiedDate, fileSize 這些屬性是非標準的,主要出現(xiàn)在舊版 IE 中,現(xiàn)代瀏覽器不支持或返回空值。
21、document.lastModified
- 含義:返回文檔最后修改的日期和時間字符串。
- 詞源:Last(最后)+ Modified(修改)。
- 語法:
let modDate = document.lastModified; - 參數(shù)及說明:返回字符串格式如
“12/25/2024 14:35:00”。 - 例子:
console.log('本頁面最后更新于:' + document.lastModified);22、document.fileCreatedDate(非標準/IE)
- 含義:在舊版 IE 中,嘗試返回文件的創(chuàng)建日期。
- 詞源:File(文件)+ Created(創(chuàng)建)+ Date(日期)。
- 語法:
let createDate = document.fileCreatedDate; - 說明:現(xiàn)代瀏覽器中無此屬性,會返回
undefined。
23、document.fileModifiedDate(非標準/IE)
- 含義:同
lastModified,舊版 IE 的另一別名。 - 詞源:File(文件)+ Modified(修改)+ Date(日期)。
24、document.fileSize(非標準/IE)
- 含義:在舊版 IE 中,返回文檔的大?。ㄗ止?jié)數(shù))。
- 詞源:File(文件)+ Size(大?。?。
25、document.bgColor
- 含義:獲取或設置文檔的背景顏色(已廢棄)。
- 詞源:Background(背景)+ Color(顏色)。
- 語法:
document.bgColor = “#FF0000”; - 說明:這是一個非常老的屬性,來自 DOM Level 0?,F(xiàn)在應使用
document.body.style.backgroundColor代替。 - 例子:
document.bgColor = “yellow”; // 不推薦使用
26、document.fgColor
- 含義:獲取或設置文檔的前景色(文本顏色,已廢棄)。
- 詞源:Foreground(前景)+ Color(顏色)。
- 語法:
document.fgColor = “black”; - 說明:現(xiàn)在應使用 CSS 的
color屬性。
27、document.linkColor
- 含義:獲取或設置文檔中未訪問鏈接的顏色(
<a>, 已廢棄)。 - 詞源:Link(鏈接)+ Color(顏色)。
- 說明:對應 CSS 的
:link偽類?,F(xiàn)在應使用 CSS 控制。
28、document.alinkColor
- 含義:獲取或設置激活鏈接(鼠標按下瞬間)的顏色(已廢棄)。
- 詞源:Active Link(激活的鏈接)+ Color(顏色)。
- 說明:對應 CSS 的
:active偽類。
29、document.vlinkColor
- 含義:獲取或設置已訪問過鏈接的顏色(已廢棄)。
- 詞源:Visited Link(已訪問鏈接)+ Color(顏色)。
- 說明:對應 CSS 的
:visited偽類。
第六部分:集合與擴展 (30-32)
30、document.all
- 含義:返回一個包含文檔中所有 HTML 元素的集合(HTMLAllCollection)。
- 詞源:All(所有)。
- 語法:
let allElements = document.all; - 參數(shù)及說明:這是一個非標準但曾被廣泛支持的屬性(源自 IE)。現(xiàn)代瀏覽器為了兼容性保留了它,但建議使用
document.querySelectorAll('*')代替。它是一個類數(shù)組對象,同時也是一個 falsy 值,常用于檢測瀏覽器是否為 IE。 - 例子:
// 獲取頁面上第 5 個元素
let element = document.all[4];
// 檢測 IE 的古老寫法(現(xiàn)在不推薦)
if (document.all) {
// 如果是 IE
}31、document.expando
- 含義:一個舊版 IE 屬性,允許或禁止在 DOM 對象上擴展自定義屬性。
- 詞源:Expando(擴展屬性,源自 “expand”)。
- 語法:
document.expando = false; - 參數(shù)及說明:如果設置為
false,則不能給 DOM 元素添加自定義屬性?,F(xiàn)代瀏覽器無此限制。 - 例子:
// 在舊版 IE 中 document.expando = false; document.body.myCustomProp = “test”; // 這將會失敗
32、document.location
- 含義:返回一個
Location對象,包含文檔 URL 的信息,并且可以用來導航。 - 詞源:Location(位置)。
- 語法:
- 獲取信息:
let path = document.location.pathname; - 跳轉頁面:
document.location.href = 'https://example.com';或document.location.reload();
- 獲取信息:
- 參數(shù)及說明:
document.location和window.location通常是同一個對象。它既是只讀的(直接讀取時返回字符串),但也可以通過賦值字符串進行跳轉。 - 例子:
console.log(document.location.hostname); // 輸出當前域名
// 3 秒后跳轉到百度
setTimeout(() => {
document.location = 'https://www.baidu.com';
}, 3000);第七部分:節(jié)點導航與關系屬性 (33-40)
33、document.firstChild
- 含義:返回文檔節(jié)點的第一個子節(jié)點。
- 詞源:First(第一個)+ Child(孩子)。
- 語法:
let first = document.firstChild; - 參數(shù)及說明:對于 HTML 文檔,通常第一個子節(jié)點可能是
<!DOCTYPE>聲明或空白文本節(jié)點(換行符)。返回的是 Node 類型,不一定是元素節(jié)點。 - 例子:
console.log(document.firstChild.nodeName); // 可能輸出 '#comment' 或 'html' 或 '#text'
34、document.lastChild
- 含義:返回文檔節(jié)點的最后一個子節(jié)點。
- 詞源:Last(最后一個)+ Child(孩子)。
- 語法:
let last = document.lastChild; - 參數(shù)及說明:通常最后一個子節(jié)點是
<html>元素。 - 例子:
console.log(document.lastChild.nodeName); // 通常輸出 'HTML'
35、document.childNodes
- 含義:返回包含文檔節(jié)點所有子節(jié)點的 NodeList。
- 詞源:Child(孩子)+ Nodes(節(jié)點,復數(shù))。
- 語法:
let children = document.childNodes; - 參數(shù)及說明:這是一個類數(shù)組對象,包含文檔類型聲明和根元素。不會遞歸獲取所有后代節(jié)點,只獲取直接子節(jié)點。
- 例子:
for (let node of document.childNodes) {
console.log(node.nodeType, node.nodeName); // 輸出:10 'html' 之類的信息
}36、document.firstElementChild
- 含義:返回文檔節(jié)點的第一個元素子節(jié)點(忽略文本和注釋)。
- 詞源:First(第一個)+ Element(元素)+ Child(孩子)。
- 語法:
let firstEl = document.firstElementChild; - 參數(shù)及說明:對于 HTML 文檔,這通常是
<html>元素。只考慮元素節(jié)點,忽略空白和 DOCTYPE。 - 例子:
console.log(document.firstElementChild.tagName); // 輸出:'HTML'
37、document.lastElementChild
- 含義:返回文檔節(jié)點的最后一個元素子節(jié)點。
- 詞源:Last(最后一個)+ Element(元素)+ Child(孩子)。
- 語法:
let lastEl = document.lastElementChild; - 說明:通常也是
<html>元素,因為通常只有一個根元素。 - 例子:
console.log(document.lastElementChild === document.documentElement); // true
38、document.children
- 含義:返回包含文檔節(jié)點所有元素子節(jié)點的 HTMLCollection。
- 詞源:Children(孩子們,復數(shù))。
- 語法:
let elementChildren = document.children; - 參數(shù)及說明:只包含元素節(jié)點,不包含 DOCTYPE 或文本節(jié)點。通常只有一個元素:
<html>。 - 例子:
console.log(document.children.length); // 通常是 1 console.log(document.children[0].tagName); // 輸出:'HTML'
39、document.nodeName
- 含義:返回文檔節(jié)點的名稱。
- 詞源:Node(節(jié)點)+ Name(名稱)。
- 語法:
let name = document.nodeName; - 參數(shù)及說明:對于 Document 節(jié)點,總是返回
“#document”。 - 例子:
console.log(document.nodeName); // 輸出:'#document'
40、document.nodeType
- 含義:返回文檔節(jié)點的類型編號。
- 詞源:Node(節(jié)點)+ Type(類型)。
- 語法:
let type = document.nodeType; - 參數(shù)及說明:Document 節(jié)點的類型是 9。
- 1:元素節(jié)點
- 3:文本節(jié)點
- 8:注釋節(jié)點
- 9:文檔節(jié)點
- 例子:
console.log(document.nodeType); // 輸出:9
第八部分:文檔事件與處理程序 (41-46)
41、document.onload
- 含義:文檔加載完成時觸發(fā)的事件處理程序。
- 詞源:On(當...時)+ Load(加載)。
- 語法:
document.onload = function() { ... }; - 參數(shù)及說明:通常更常用的是
window.onload或DOMContentLoaded。document.onload不如window.onload支持廣泛。 - 例子:
document.onload = function() {
console.log('文檔加載完成');
};42、document.onreadystatechange
- 含義:當
document.readyState屬性改變時觸發(fā)的事件。 - 詞源:On(當...時)+ Ready(準備)+ State(狀態(tài))+ Change(改變)。
- 語法:
document.onreadystatechange = function() { ... }; - 參數(shù)及說明:可以用來監(jiān)聽文檔加載狀態(tài)的變化,從
loading到interactive再到complete。 - 例子:
document.onreadystatechange = function() {
if (document.readyState === 'interactive') {
console.log('DOM 解析完成,但資源還在加載');
}
if (document.readyState === 'complete') {
console.log('頁面完全加載完成');
}
};43、document.onscroll
- 含義:當文檔滾動時觸發(fā)的事件處理程序。
- 詞源:On(當...時)+ Scroll(滾動)。
- 語法:
document.onscroll = function() { ... }; - 參數(shù)及說明:也可以添加到
window對象上。監(jiān)聽整個頁面的滾動事件。 - 例子:
document.onscroll = function() {
console.log('滾動位置:' + window.scrollY);
};44、document.onclick
- 含義:當文檔被點擊時觸發(fā)的事件處理程序。
- 詞源:On(當...時)+ Click(點擊)。
- 語法:
document.onclick = function(event) { ... }; - 參數(shù)及說明:事件對象包含點擊位置、目標元素等信息。
- 例子:
document.onclick = function(e) {
console.log('點擊了:' + e.target.tagName);
console.log('坐標:' + e.clientX + ', ' + e.clientY);
};45、document.onkeydown
- 含義:當鍵盤按鍵被按下時觸發(fā)的事件處理程序。
- 詞源:On(當...時)+ Key(鍵)+ Down(向下/按下)。
- 語法:
document.onkeydown = function(event) { ... }; - 參數(shù)及說明:事件對象包含按下的鍵碼、是否按了 Ctrl 等信息。
- 例子:
document.onkeydown = function(e) {
if (e.key === 'Escape') {
console.log('按下了 ESC 鍵');
closeModal(); // 假設有一個關閉彈窗的函數(shù)
}
};46、document.oncopy
- 含義:當用戶復制文檔內(nèi)容時觸發(fā)的事件處理程序。
- 詞源:On(當...時)+ Copy(復制)。
- 語法:
document.oncopy = function(event) { ... }; - 參數(shù)及說明:可以用于修改復制的內(nèi)容,或者阻止復制。
- 例子:
document.oncopy = function(e) {
alert('內(nèi)容已復制!');
// 修改復制的內(nèi)容
e.clipboardData.setData('text/plain', '復制的內(nèi)容被修改了');
e.preventDefault(); // 阻止默認復制行為
};第九部分:文檔兼容性與視圖 (47-53)
47、document.compatMode
- 含義:返回文檔的渲染模式,是怪異模式還是標準模式。
- 詞源:Compat(兼容性)+ Mode(模式)。
- 語法:
let mode = document.compatMode; - 參數(shù)及說明:返回兩個值之一:
'CSS1Compat':標準模式(嚴格模式)'BackCompat':怪異模式(混雜模式,兼容舊瀏覽器)
- 例子:
if (document.compatMode === 'CSS1Compat') {
console.log('標準模式渲染');
} else {
console.log('怪異模式渲染');
}48、document.documentURI
- 含義:返回文檔的位置(URI)。
- 詞源:Document(文檔)+ URI(統(tǒng)一資源標識符)。
- 語法:
let uri = document.documentURI; - 參數(shù)及說明:和
document.URL基本相同,但在某些 XML 文檔中可能行為略有不同。 - 例子:
console.log(document.documentURI); // 輸出當前 URL
49、document.inputEncoding
- 含義:返回文檔的字符編碼(已廢棄)。
- 詞源:Input(輸入)+ Encoding(編碼)。
- 語法:
let encoding = document.inputEncoding; - 說明:已被
document.characterSet取代。 - 例子:
// 現(xiàn)代瀏覽器請使用 document.characterSet console.log(document.characterSet);
50、document.hidden
- 含義:返回一個布爾值,表示頁面是否被隱藏(例如在后臺標簽頁中)。
- 詞源:Hidden(隱藏的)。
- 語法:
let isHidden = document.hidden; - 參數(shù)及說明:用于頁面可見性 API。如果頁面被隱藏返回
true,否則返回false。 - 例子:
document.addEventListener('visibilitychange', function() {
if (document.hidden) {
console.log('用戶切換到了其他標簽頁');
pauseVideo(); // 暫停視頻播放
} else {
console.log('用戶回來了');
playVideo(); // 恢復播放
}
});51、document.visibilityState
- 含義:返回文檔的可見性狀態(tài)。
- 詞源:Visibility(可見性)+ State(狀態(tài))。
- 語法:
let state = document.visibilityState; - 參數(shù)及說明:可能的值:
'visible':頁面在前臺標簽頁,窗口未最小化'hidden':頁面在后臺標簽頁或窗口最小化'prerender':頁面正在預渲染(不可見)'unloaded':頁面正在卸載
- 例子:
if (document.visibilityState === 'visible') {
console.log('頁面可見,可以執(zhí)行動畫');
}52、document.designMode
- 含義:控制整個文檔是否可編輯。
- 詞源:Design(設計)+ Mode(模式)。
- 語法:
document.designMode = 'on';或'off'; - 參數(shù)及說明:設置為
'on'可以讓整個頁面變成可編輯狀態(tài),類似富文本編輯器。 - 例子:
// 開啟整個頁面的編輯模式 document.designMode = 'on'; // 現(xiàn)在用戶可以直接在頁面上打字修改內(nèi)容
53、document.execCommand()
- 含義:執(zhí)行命令操作可編輯區(qū)域的內(nèi)容(已廢棄,但仍可用)。
- 詞源:Exec(執(zhí)行)+ Command(命令)。
- 語法:
document.execCommand(command, showUI, value); - 參數(shù)及說明:
command:命令名稱,如'bold'、'italic'、'copy'、'paste'。showUI:是否顯示 UI,通常為false。value:命令需要的值,如插入鏈接時的 URL。
- 例子:
// 將選中文本加粗(需要先開啟 designMode 或 contenteditable)
document.execCommand('bold', false, null);
// 復制選中的文本
document.execCommand('copy');
// 插入一個鏈接
document.execCommand('createLink', false, 'https://example.com');第十部分:文檔集合與特殊屬性 (54-60)
54、document.styleSheets
- 含義:返回包含文檔中所有樣式表對象的 StyleSheetList。
- 詞源:Style(樣式)+ Sheets(工作表,復數(shù))。
- 語法:
let sheets = document.styleSheets; - 參數(shù)及說明:可以訪問頁面中所有 CSS 樣式表(包括內(nèi)聯(lián)、外鏈)。
- 例子:
console.log('頁面有 ' + document.styleSheets.length + ' 個樣式表');
// 查看第一個樣式表的規(guī)則
let firstSheet = document.styleSheets[0];
console.log(firstSheet.cssRules); // 查看 CSS 規(guī)則55、document.embeds
- 含義:返回包含文檔中所有
<embed>元素的集合。 - 詞源:Embeds(嵌入元素,復數(shù))。
- 語法:
let embeds = document.embeds; - 說明:類似于
document.plugins,用于訪問嵌入的對象。 - 例子:
let flashCount = document.embeds.length; // 頁面中 Flash 嵌入的數(shù)量
56、document.plugins
- 含義:
document.embeds的別名。 - 詞源:Plugins(插件,復數(shù))。
- 語法:
let plugins = document.plugins; - 說明:返回嵌入插件的集合。
- 例子:
console.log(document.plugins === document.embeds); // true
57、document.fonts
- 含義:返回文檔的 FontFaceSet 對象。
- 詞源:Fonts(字體,復數(shù))。
- 語法:
let fonts = document.fonts; - 參數(shù)及說明:用于檢查字體加載狀態(tài),等待字體加載完成等。
- 例子:
document.fonts.ready.then(function() {
console.log('所有字體加載完成');
// 可以安全渲染文本了
});
console.log(document.fonts.status); // 字體加載狀態(tài)58、document.cookieEnabled
- 含義:返回一個布爾值,表示瀏覽器是否啟用了 cookie。
- 詞源:Cookie + Enabled(啟用)。
- 語法:
let enabled = document.cookieEnabled; - 說明:只讀屬性,用于檢測 Cookie 是否可用。
- 例子:
if (!document.cookieEnabled) {
alert('請啟用 Cookie 以獲得完整體驗');
}59、document.currentScript
- 含義:返回當前正在執(zhí)行的
<script>元素。 - 詞源:Current(當前的)+ Script(腳本)。
- 語法:
let script = document.currentScript; - 參數(shù)及說明:只能在腳本執(zhí)行期間使用,用于獲取當前腳本元素的信息。對于動態(tài)加載的腳本特別有用。
- 例子:
// 在 script.js 文件中
console.log(document.currentScript.src); // 輸出當前腳本的 URL
console.log(document.currentScript.getAttribute('data-config')); // 獲取自定義數(shù)據(jù)屬性60、document.fullscreenElement
- 含義:返回當前以全屏模式顯示的元素。
- 詞源:Fullscreen(全屏)+ Element(元素)。
- 語法:
let fullEl = document.fullscreenElement; - 參數(shù)及說明:如果沒有元素在全屏模式,返回
null。 - 例子:
function toggleFullscreen() {
if (document.fullscreenElement) {
document.exitFullscreen(); // 退出全屏
} else {
document.documentElement.requestFullscreen(); // 整個文檔全屏
}
}總 結 列 表
下面對上面講解的JavaScript的 document 對象 60 個常見的屬性進行總結列表。
第一部分:文檔元數(shù)據(jù)與位置 (1-5)
| 屬性 | 含義 | 詞源 | 語法 | 參數(shù)及說明 | |
|---|---|---|---|---|---|
| 1 | document.title | 獲取或設置當前文檔的標題。 | “title”意為標題。 | let docTitle = document.title;document.title = "新標題"; | 無參數(shù)。作為 Getter 時返回字符串,作為 Setter 時需傳入新標題字符串。 |
| 2 | document.URL | 返回當前文檔的完整 URL 地址。 | “URL” 是 Uniform Resource Locator(統(tǒng)一資源定位符)的縮寫。 | let url = document.URL; | 只讀屬性,無參數(shù)。返回一個包含當前頁面 URL 的字符串。 |
| 3 | document.domain | 獲取或設置當前文檔的域名,用于同源策略下的跨子域通信。 | “domain”意為域名。 | let domain = document.domain;document.domain = "example.com"; | 可作為 Getter/Setter。通常只能設置為當前域名的父域(例如從 "sub.example.com" 設為 "example.com")。 |
| 4 | document.referrer | 返回鏈接到當前頁面的前一頁面的 URL。 | “referrer”意為引薦人、來源頁面。 | let referringPage = document.referrer; | 只讀屬性。如果用戶直接訪問該頁面(如通過書簽),則返回空字符串。 |
| 5 | document.cookie | 獲取或設置與當前文檔相關聯(lián)的所有 HTTP cookie。 | “cookie”在此指網(wǎng)絡瀏覽器的數(shù)據(jù)存儲機制。 | let cookies = document.cookie;document.cookie = "key=value; path=/"; | 讀取時返回包含所有 cookie 的字符串(以分號分隔)。寫入時需設置鍵值對及可選屬性(如 path、expires)。 |
第二部分:文檔元素集合 (6-12)
| 屬性 | 含義 | 詞源 | 語法 | 參數(shù)及說明 | |
|---|---|---|---|---|---|
| 6 | document.body | 返回當前文檔的 <body> 元素。 | “body”指文檔的主體部分。 | let bodyEl = document.body; | 只讀屬性??梢灾苯硬僮髟撛?,例如設置背景色。 |
| 7 | document.head | 返回當前文檔的 <head> 元素。 | “head”指文檔的頭部區(qū)域。 | let headEl = document.head; | 只讀屬性。 |
| 8 | document.forms | 返回當前文檔中所有 <form> 元素的集合(HTMLCollection)。 | “forms”是 form 的復數(shù)形式。 | let formsCollection = document.forms; | 只讀屬性。返回一個類數(shù)組對象,可以通過索引或表單的 name/id 訪問。 |
| 9 | document.images | 返回當前文檔中所有 <img> 元素的集合(HTMLCollection)。 | “images”是 image 的復數(shù)形式。 | let imagesCollection = document.images; | 只讀屬性。 |
| 10 | document.links | 返回當前文檔中所有帶有 href 屬性的 <area> 元素和 <a> 元素的集合(HTMLCollection)。 | “links”是 link 的復數(shù)形式。 | let linksCollection = document.links; | 只讀屬性。 |
| 11 | document.anchors | 返回當前文檔中所有帶有 name 屬性的 <a> 元素的集合(HTMLCollection)。 | “anchors”是 anchor(錨點)的復數(shù)形式。 | let anchorsCollection = document.anchors; | 只讀屬性。注意:現(xiàn)代 HTML 中通常使用 id 屬性創(chuàng)建錨點,而非 name。 |
| 12 | document.scripts | 返回當前文檔中所有 <script> 元素的集合(HTMLCollection)。 | “scripts”是 script 的復數(shù)形式。 | let scriptsCollection = document.scripts; | 只讀屬性。 |
第三部分:文檔結構與視圖 (13-17)
| 屬性 | 含義 | 詞源 | 語法 | 參數(shù)及說明 | |
|---|---|---|---|---|---|
| 13 | document.doctype | 返回當前文檔關聯(lián)的文檔類型聲明(DTD)。 | “doctype”是 Document Type Declaration 的簡稱。 | let doctype = document.doctype; | 只讀屬性。返回一個 DocumentType 對象,如果沒有則返回 null。 |
| 14 | document.documentElement | 返回文檔的根元素(對于 HTML 文檔,即 <html> 元素)。 | “documentElement”意為文檔元素。 | let rootEl = document.documentElement; | 只讀屬性。這是獲取根元素的標準方法。 |
| 15 | document.defaultView | 返回與當前文檔關聯(lián)的 window 對象。 | “defaultView”意為默認視圖。 | let win = document.defaultView; | 只讀屬性。在瀏覽器中,通常等同于 window。 |
| 16 | document.activeElement | 返回當前文檔中獲得焦點的元素。 | “activeElement”意為激活中的元素。 | let activeEl = document.activeElement; | 只讀屬性。如果沒有元素獲得焦點,則返回 <body> 元素或 null。 |
| 17 | document.baseURI | 返回文檔的絕對基礎 URI,通常用于解析相對路徑。 | “baseURI”是 Base Uniform Resource Identifier 的縮寫。 | let baseUri = document.baseURI; | 只讀屬性。通常由 <base> 標簽設置,否則默認為文檔地址。 |
第四部分:編碼與狀態(tài) (18-20)
| 屬性 | 含義 | 詞源 | 語法 | 參數(shù)及說明 | |
|---|---|---|---|---|---|
| 18/19 | document.charset / document.characterSet | 返回文檔使用的字符編碼。 | “charset”是 Character Set 的縮寫。 | let encoding = document.characterSet; | 只讀屬性。charset 是 characterSet 的別名,推薦使用后者。 |
| 20 | document.readyState | 返回當前文檔的加載狀態(tài)。 | “readyState”意為就緒狀態(tài)。 | let state = document.readyState; | 只讀屬性。返回值有三種:loading(加載中)、interactive(DOM 解析完成)、complete(頁面完全加載)。 |
第五部分:文件信息與遺留屬性 (21-29)
| 屬性 | 含義 | 詞源 | 語法 | 參數(shù)及說明 | |
|---|---|---|---|---|---|
| 21 | document.lastModified | 返回文檔最后被修改的日期和時間(字符串形式)。 | “lastModified”意為最后修改時間。 | let modified = document.lastModified; | 只讀屬性。返回一個字符串,格式因服務器而異。 |
| 22-24 | document.fileCreatedDate / fileModifiedDate / fileSize | (非標準,僅舊版 IE)分別表示文件的創(chuàng)建日期、修改日期和大小。 | - | 不建議使用。在現(xiàn)代瀏覽器中無效。 | 無。 |
| 25 | document.bgColor | 獲取或設置文檔的背景顏色。 | “bgColor”是 Background Color 的縮寫。 | document.bgColor = "red"; | 已廢棄,應使用 CSS 的 document.body.style.backgroundColor 替代。 |
| 26 | document.fgColor | 獲取或設置文檔的前景色(文本顏色)。 | “fgColor”是 Foreground Color 的縮寫。 | document.fgColor = "black"; | 已廢棄,應使用 CSS 替代。 |
| 27-29 | document.linkColor / alinkColor / vlinkColor | 分別設置或獲取鏈接、激活鏈接、已訪問鏈接的顏色。 | “link”鏈接,“a”指 anchor,“v”指 visited。 | document.linkColor = "blue"; | 已廢棄,應使用 CSS 偽類(:link、:active、:visited)替代。 |
第六部分:集合與擴展 (30-32)
| 屬性 | 含義 | 詞源 | 語法 | 參數(shù)及說明 | |
|---|---|---|---|---|---|
| 30 | document.all | 返回一個包含文檔中所有元素的 HTMLAllCollection(非標準,僅 IE 支持)。 | “all”意為全部。 | let allEl = document.all; | 只讀屬性。非標準,不應在現(xiàn)代 Web 開發(fā)中使用。 |
| 31 | document.expando | 允許在 IE 中控制是否允許擴展文檔的屬性(非標準,僅 IE)。 | “expando”意為擴展屬性。 | document.expando = false; | 非標準,僅 IE。用于性能優(yōu)化,現(xiàn)已無用。 |
| 32 | document.location | 返回一個 Location 對象,包含文檔 URL 的信息,并可用來導航。 | “location”意為位置。 | let loc = document.location;document.location.href = "newpage.html"; | 既是只讀屬性(返回對象),也是可寫屬性(賦值字符串可導航到新頁面)。與 window.location 基本相同。 |
第七部分:節(jié)點導航與關系屬性 (33-40)
| 屬性 | 含義 | 詞源 | 語法 | 參數(shù)及說明 | |
|---|---|---|---|---|---|
| 33 | document.firstChild | 返回文檔的第一個子節(jié)點。 | “firstChild”意為第一個子節(jié)點。 | let first = document.firstChild; | 只讀屬性。注意:在 HTML 中,根節(jié)點 document 的第一個子節(jié)點通常是 <!DOCTYPE> 聲明,但可能因空白節(jié)點而異。 |
| 34 | document.lastChild | 返回文檔的最后一個子節(jié)點。 | “lastChild”意為最后一個子節(jié)點。 | let last = document.lastChild; | 只讀屬性。通常返回 <html> 元素。 |
| 35 | document.childNodes | 返回文檔所有子節(jié)點的 NodeList 集合。 | “childNodes”意為子節(jié)點們。 | let children = document.childNodes; | 只讀屬性。通常包含 doctype 和 html 元素。 |
| 36 | document.firstElementChild | 返回文檔的第一個子元素節(jié)點(忽略文本和注釋節(jié)點)。 | “firstElementChild”意為第一個元素子節(jié)點。 | let firstEl = document.firstElementChild; | 只讀屬性。對于 HTML 文檔,通常是 <html> 元素。 |
| 37 | document.lastElementChild | 返回文檔的最后一個子元素節(jié)點。 | “lastElementChild”意為最后一個元素子節(jié)點。 | let lastEl = document.lastElementChild; | 只讀屬性。通常也是 <html> 元素。 |
| 38 | document.children | 返回文檔所有子元素節(jié)點的 HTMLCollection 集合。 | “children”意為孩子們。 | let elChildren = document.children; | 只讀屬性。通常只包含 <html> 元素。 |
| 39 | document.nodeName | 返回文檔節(jié)點的名稱。 | “nodeName”意為節(jié)點名稱。 | let name = document.nodeName; | 只讀屬性。對于 Document 節(jié)點,總是返回 #document。 |
| 40 | document.nodeType | 返回文檔節(jié)點的類型。 | “nodeType”意為節(jié)點類型。 | let type = document.nodeType; | 只讀屬性。Document 節(jié)點的類型常量是 9。 |
第八部分:文檔事件與處理程序 (41-46)
| 屬性 | 含義 | 詞源 | 語法 | 參數(shù)及說明 | |
|---|---|---|---|---|---|
| 41 | document.onload | 頁面加載完成時的事件處理程序(通常應使用 window.onload)。 | “onload”意為當加載時。 | document.onload = function() { ... }; | 此事件通常在 <body> 或 <frameset> 上觸發(fā)。更推薦使用 window.addEventListener('load', ...)。 |
| 42 | document.onreadystatechange | 當 document.readyState 屬性發(fā)生變化時觸發(fā)的事件處理程序。 | “onreadystatechange”意為當就緒狀態(tài)改變時。 | document.onreadystatechange = function() { ... }; | 用于監(jiān)聽文檔加載過程。 |
| 43 | document.onscroll | 當文檔滾動條滾動時觸發(fā)的事件處理程序。 | “onscroll”意為當滾動時。 | document.onscroll = function() { ... }; | 注意:滾動事件也可能發(fā)生在其他元素上。 |
| 44 | document.onclick | 當文檔被點擊時觸發(fā)的事件處理程序。 | “onclick”意為當點擊時。 | document.onclick = function(event) { ... }; | 通過事件對象 event 可以獲取點擊位置、目標元素等。 |
| 45 | document.onkeydown | 當按鍵被按下時觸發(fā)的事件處理程序。 | “onkeydown”意為當鍵按下時。 | document.onkeydown = function(event) { ... }; | 常用于實現(xiàn)鍵盤快捷鍵。 |
| 46 | document.oncopy | 當用戶復制元素內(nèi)容時觸發(fā)的事件處理程序。 | “oncopy”意為當復制時。 | document.oncopy = function(event) { ... }; | 可以用于修改復制的內(nèi)容或阻止復制。 |
第九部分:文檔兼容性與視圖 (47-53)
| 屬性 | 含義 | 詞源 | 語法 | 參數(shù)及說明 | |
|---|---|---|---|---|---|
| 47 | document.compatMode | 返回文檔的渲染模式是怪異模式還是標準模式。 | “compatMode”是 Compatibility Mode(兼容模式)的縮寫。 | let mode = document.compatMode; | 只讀屬性。返回 "CSS1Compat"(標準模式)或 "BackCompat"(怪異模式)。 |
| 48 | document.documentURI | 返回文檔的位置(URI)。 | “documentURI”是 Document Uniform Resource Identifier 的縮寫。 | let uri = document.documentURI; | 只讀屬性。與 document.URL 類似,但 documentURI 對所有文檔(包括 XML)都可用,且不可變。 |
| 49 | document.inputEncoding | 返回文檔的字符編碼。 | “inputEncoding”意為輸入編碼。 | let encoding = document.inputEncoding; | 只讀屬性。已廢棄,應使用 document.characterSet。 |
| 50 | document.hidden | 返回一個布爾值,表示頁面是否被認為隱藏。 | “hidden”意為隱藏的。 | let isHidden = document.hidden; | 只讀屬性。是 Page Visibility API 的一部分。 |
| 51 | document.visibilityState | 返回文檔的可見性狀態(tài)。 | “visibilityState”意為可見性狀態(tài)。 | let state = document.visibilityState; | 只讀屬性。返回值:'visible'(頁面可見)、'hidden'(頁面隱藏)、'prerender'(預渲染)。 |
| 52 | document.designMode | 控制整個文檔是否可編輯。 | “designMode”意為設計模式。 | document.designMode = "on";document.designMode = "off"; | 設置為 "on" 時,整個文檔區(qū)域變?yōu)榭删庉嫚顟B(tài)(類似富文本編輯器)。 |
| 53 | document.execCommand() | 在可編輯內(nèi)容區(qū)域執(zhí)行一個命令(如加粗、創(chuàng)建鏈接)。 | “execCommand”意為執(zhí)行命令。 | document.execCommand('bold', false, null); | 參數(shù):命令名、是否顯示用戶界面(通常為 false)、命令所需的值。 |
第十部分:文檔集合與特殊屬性 (54-60)
| 屬性 | 含義 | 詞源 | 語法 | 參數(shù)及說明 | |
|---|---|---|---|---|---|
| 54 | document.styleSheets | 返回一個包含所有顯式鏈接或嵌入到文檔中的樣式表對象的 StyleSheetList。 | “styleSheets”意為樣式表們。 | let sheets = document.styleSheets; | 只讀屬性??梢杂糜趧討B(tài)操作 CSS 規(guī)則。 |
| 55 | document.embeds | 返回當前文檔中所有 <embed> 元素的集合(HTMLCollection)。 | “embeds”是 embed 的復數(shù)形式。 | let embedsCollection = document.embeds; | 只讀屬性。用于獲取頁面中嵌入的插件內(nèi)容。 |
| 56 | document.plugins | 返回一個包含所有已安裝插件的 PluginArray。 | “plugins”是 plugin 的復數(shù)形式。 | let plugins = document.plugins; | 只讀屬性。通常用于檢測特定插件是否存在(如 Flash)。 |
| 57 | document.fonts | 返回文檔的 FontFaceSet 接口,用于檢測和加載字體。 | “fonts”意為字體們。 | let fontSet = document.fonts; | 只讀屬性。是 CSS Font Loading API 的一部分。 |
| 58 | document.cookieEnabled | 返回一個布爾值,指示瀏覽器是否啟用了 cookie。 | “cookieEnabled”意為 Cookie 已啟用。 | let enabled = document.cookieEnabled; | 只讀屬性。用于檢測用戶的 Cookie 設置。 |
| 59 | document.currentScript | 返回當前正在執(zhí)行的 <script> 元素。 | “currentScript”意為當前腳本。 | let curScript = document.currentScript; | 只讀屬性。對于內(nèi)聯(lián)腳本和外部腳本都有效,用于獲取腳本自身的元數(shù)據(jù)。 |
| 60 | document.fullscreenElement | 返回當前正在以全屏模式顯示的元素。 | “fullscreenElement”意為全屏元素。 | let fsEl = document.fullscreenElement; | 只讀屬性。如果沒有元素處于全屏狀態(tài),則返回 null。 |
到此這篇關于JavaScript中Document對象常見的的屬性分析的文章就介紹到這了,更多相關js document對象屬性內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
javascript從image轉換為base64位編碼的String
選擇webview把image以base64位編碼的方式傳給本地應用,就不需要再取一次圖片文件了,從而提高了速度2014-07-07
js實現(xiàn)三張圖(文)片一起切換的banner焦點圖
這篇文章主要介紹了js實現(xiàn)三張圖(文)片一起切換的banner焦點圖,推薦給大家,有需要的小伙伴可以參考下。2015-08-08
JavaScript設計模式之觀察者模式(發(fā)布訂閱模式)原理與實現(xiàn)方法示例
這篇文章主要介紹了JavaScript設計模式之觀察者模式(發(fā)布訂閱模式)原理與實現(xiàn)方法,結合實例形式分析了JavaScript觀察者模式概念、原理、使用方法及相關操作注意事項,需要的朋友可以參考下2018-07-07
將html頁面保存成圖片,圖片寫入pdf的實現(xiàn)方法(推薦)
下面小編就為大家?guī)硪黄獙tml頁面保存成圖片,圖片寫入pdf的實現(xiàn)方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-09-09
layui自定義插件citySelect實現(xiàn)省市區(qū)三級聯(lián)動選擇
這篇文章主要為大家詳細介紹了layui自定義插件citySelect實現(xiàn)省市區(qū)三級聯(lián)動選擇,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-07-07

