首頁 > 軟體

JavaScript中BOM,DOM和事件的用法詳解

2022-06-24 14:01:14

BOM

概念

BOM全稱Browser Object Model瀏覽器物件模型,將瀏覽器的各個組成部分封裝成物件。

物件組成

  • Window:視窗物件
  • Navigator:瀏覽器物件
  • Screen:顯示器螢幕物件
  • History:歷史記錄物件
  • Location:位址列物件

Window:視窗物件

方法

與彈出框有關的方法

alert() 顯示帶有一段訊息和一個確認按鈕的警告框。 confirm() 顯示帶有一段訊息以及確認按鈕和取消按鈕的對話方塊。 如果使用者點選確定按鈕,則方法返回true 如果使用者點選取消按鈕,則方法返回false prompt() 顯示可提示使用者輸入的對話方塊。 返回值:獲取使用者輸入的值

與開啟關閉有關的方法

close() 關閉瀏覽器視窗。 誰呼叫我 ,我關誰 open() 開啟一個新的瀏覽器視窗 返回新的Window物件

與定時器有關的方式

setTimeout() 在指定的毫秒數後呼叫函數或計算表示式。

引數:

  • js程式碼或者方法物件
  • 毫秒值

返回值:唯一標識,用於取消定時器

clearTimeout() 取消由 setTimeout() 方法設定的 timeout。 setInterval() 按照指定的週期(以毫秒計)來呼叫函數或計算表示式。 clearInterval() 取消由 setInterval() 設定的 timeout。

屬性

獲取其他BOM物件

history location Navigator Screen:

獲取DOM物件

document

特點

Window物件不需要建立可以直接使用 window使用。 window.方法名(); window參照可以省略。  方法名();

Location:位址列物件

建立(獲取):

window.location location

方法:

reload() 重新載入當前檔案。重新整理

屬性

href 設定或返回完整的 URL。

History:歷史記錄物件

建立(獲取):

window.history history

方法:

back() 載入 history 列表中的前一個 URL。 forward() 載入 history 列表中的下一個 URL。 go(引數) 載入 history 列表中的某個具體頁面。

引數:

正數:前進幾個歷史記錄 負數:後退幾個歷史記錄

屬性

length 返回當前視窗歷史列表中的 URL 數量。

DOM

概念

DOM全稱Document Object Model 檔案物件模型,將標示語言檔案的各個組成部分,封裝為物件。可以使用這些物件,對標示語言檔案進行CRUD的動態操作。

W3C DOM 標準被分為 3 個不同的部分

1.核心 DOM - 針對任何結構化檔案的標準模型

Document:檔案物件 Element:元素物件 Attribute:屬性物件 Text:文字物件 Comment:註釋物件 Node:節點物件,其他5個的父物件

2.XML DOM - 針對 XML 檔案的標準模型

3.HTML DOM - 針對 HTML 檔案的標準模型

核心DOM模型

Document:檔案物件

建立(獲取):在html dom模型中可以使用window物件來獲取

1. window.document

2. document

方法:

1.獲取Element物件:

  • getElementById() : 根據id屬性值獲取元素物件。id屬性值一般唯一
  • getElementsByTagName():根據元素名稱獲取元素物件們。返回值是一個陣列
  • getElementsByClassName():根據Class屬性值獲取元素物件們。返回值是一個陣列
  • getElementsByName(): 根據name屬性值獲取元素物件們。返回值是一個陣列

2.建立其他DOM物件:

createAttribute(name) createComment() createElement() createTextNode()

Element:元素物件

獲取/建立:通過document來獲取和建立

方法

1. removeAttribute():刪除屬性

2. setAttribute():設定屬性

Node:節點物件,其他5個的父物件

特點:所有dom物件都可以被認為是一個節點

方法

 CRUD dom樹:

appendChild():向節點的子節點列表的結尾新增新的子節點。

removeChild()    :刪除(並返回)當前節點的指定子節點。

replaceChild():用新節點替換一個子節點。

屬性

parentNode 返回節點的父節點。

HTML DOM

  • 標籤體的設定和獲取:innerHTML
  • 使用html元素物件的屬性
  • 控制元素樣式

使用元素的style屬性來設定

如: //修改樣式方式1 div1.style.border = "1px solid red"; div1.style.width = "200px"; //font-size--> fontSize div1.style.fontSize = "20px";

提前定義好類選擇器的樣式,通過元素的className屬性來設定其class屬性值。

事件監聽機制

概念

概念:某些元件被執行了某些操作後,觸發某些程式碼的執行。

  • 事件:某些操作。如: 單擊,雙擊,鍵盤按下了,滑鼠移動了
  • 事件源:元件。如: 按鈕 文字輸入框...
  • 監聽器:程式碼。
  • 註冊監聽:將事件,事件源,監聽器結合在一起。 當事件源上發生了某個事件,則觸發執行某個監聽器程式碼。

常見的事件

點選事件

onclick:單擊事件

ondblclick:雙擊事件

焦點事件

onblur:失去焦點

onfocus:元素獲得焦點。

載入事件

onload:一張頁面或一幅影象完成載入。

滑鼠事件

  • onmousedown 滑鼠按鈕被按下。
  • onmouseup 滑鼠按鍵被鬆開。
  • onmousemove 滑鼠被移動。
  • onmouseover 滑鼠移到某元素之上。
  • onmouseout 滑鼠從某元素移開。

鍵盤事件

  • onkeydown 某個鍵盤按鍵被按下。
  • onkeyup 某個鍵盤按鍵被鬆開。
  • onkeypress 某個鍵盤按鍵被按下並鬆開。

選擇和改變

  • onchange 域的內容被改變。
  • onselect 文字被選中。

表單事件

  • onsubmit 確認按鈕被點選。
  • onreset 重置按鈕被點選。

事件簡單學習

功能: 某些元件被執行了某些操作後,觸發某些程式碼的執行。

造句:  xxx被xxx,我就xxx 我方水晶被摧毀後,我就責備對友。 敵方水晶被摧毀後,我就誇獎自己。

如何繫結事件

  • 直接在html標籤上,指定事件的屬性(操作),屬性值就是js程式碼
  • 事件:onclick--- 單擊事件
  • 通過js獲取元素物件,指定事件屬性,設定一個函數

程式碼:

	<body>
		<img id="light" src="img/off.gif"  onclick="fun();">
		<img id="light2" src="img/off.gif">
		
		<script>
			function fun(){
				alert('我被點了');
				alert('我又被點了');
			}
		
			function fun2(){
				alert('咋老點我?');
			}
		
			//1.獲取light2物件
			var light2 = document.getElementById("light2");
			//2.繫結事件
			light2.onclick = fun2;


			
		</script>
	</body>

案例1:電燈開關

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>電燈開關</title>

</head>
<body>

<img id="light" src="img/off.gif">

<script>
	/
		分析:
			1.獲取圖片物件
			2.繫結單擊事件
			3.每次點選切換圖片
				 規則:
					 如果燈是開的 on,切換圖片為 off
					 如果燈是關的 off,切換圖片為 on
				 使用標記flag來完成

	 /

	//1.獲取圖片物件
	var light = document.getElementById("light");

	var flag = false;//代表燈是滅的。 off圖片

	//2.繫結單擊事件
	light.onclick = function(){
		if(flag){//判斷如果燈是開的,則滅掉
			light.src = "img/off.gif";
			flag = false;

		}else{
			//如果燈是滅的,則開啟

			light.src = "img/on.gif";
			flag = true;
		}


	
	}
	
</script>
</body>
</html>

效果如下:

以上就是JavaScript中BOM,DOM和事件的用法詳解的詳細內容,更多關於JavaScript BOM DOM 事件的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com