DOM操作系列-01
】常見事件:
//onclick 點擊時觸發事件。
//ondblclick 雙擊時觸發事件。
//onkeydown 按鍵按下
//onkeypress 點擊按鍵
//onkeyuo 按鍵釋放
//onmousedown鼠標按下
//onmousemove鼠標移動
//onmouseup 鼠標按鍵釋放
//onmouseout 鼠標離開元素範圍
//onmouseover 鼠標移動到元素範圍
//onmousedown 點擊頁面時觸發調用函數或執行代碼。
//onload 網頁或元素加載完畢時觸發。
//onunload 網頁關閉(或者離開刷新)後觸發。
//onbeforeunload 在網頁準備關閉後觸發(關閉之前)。
】事件
點擊超鏈接執行js代碼:
<a href=”javascript:alett(‘代碼’)”>點擊</a>
//調用js執行引擎處理
<a href=”1.htm”onelick=”alett(‘代碼’)”>點擊</a>
//onclick 事件會在對象被點擊時發生。
Function 方法名(){代碼;}
<body Onmousedown=“方法名()”></body>
//onmousedown 點擊頁面時觸發調用函數或執行代碼。
】動態添加事件
Function 方法名1(){代碼;}
Function 方法名2(){代碼;}
<input type=”button” onclick=”document.ondblclick=函數名1”value=“關聯事件1”/>
//註意不要為f1加括號。 document.文檔的,ondblclick雙擊時,=函數名1處理函數為1。
<input type=”button” onclick=”document.ondblclick=函數名2”value=“關聯事件2”/>
】window對象的方法
Window對象代表當前瀏覽器窗口,使用該對象的屬性、方法的時候可以省略window。
例:window.alert(‘a’)可省略為alert(‘a’)
1)alert方法,彈出消息對話框。
2)Conflrm方法,顯示“確定”“取消”對話框,如按“確定”返回true,否則false。
3)重新導航到指定的地址:navigate(“http://www.aaa.com”)
4)Setlnterval每隔一段時間執行指定的代碼。
第一個參數為代碼的字符串,第二個參數為間隔時間(單位毫秒),返回值為定時器的標識。
例:Setlnterval(“alert(‘hello’)”,5000)
5)clearlnterval取消setlnterval的定時執行,相當於time中的enabled=false。
因為setlnter可以設定多個定時,所以clearlnterval要指定清除那個定時器的標誌,
即setlnterval的返回值。
Var intervalld = setlnterval(“alert(“hello”)”,5000); //j接收返回值 標識
Clearlnterval(ntervalld );
6)setTimeout 定時執行,只執行一次。
clearTimeout清除定時。
例:setTimeout(“alert(“hello”)”,2000);
】body、document對象的事件
//onload 網頁或元素加載完畢時觸發。
//onunload 網頁關閉(或者離開刷新)後觸發。
//onbeforeunload 在網頁準備關閉後觸發(關閉之前)。
】window對象的屬性
1)重新導向新的地址:window.location.href=’httf://www.dizhi.com’
刷新當前頁面:window.location.reload()
取當前頁面的地址:location.href
2)window.event 非常重要,用來獲得發生事件時的信息,事件不局限於window對象的事件。
類似於winform中的e(eventary)
altKey屬性,bool類型,alt鍵是否被按下;
ctrKey(ctrl鍵是否按下);
shiftKey(shift鍵是否按下);
clientX、clientY發生事件時鼠標在客戶區的坐標;
screenX、screenY發生事件時鼠標在屏幕上的坐標;
offsetX、offsetY發生事件時鼠標相對於事件源的坐標;
retumValue屬性,如將retumValue設置為false,就會取消默認事件的處理。
在超鏈接onclick中禁止訪問href的頁面。在表單效驗的時候禁止提交到服務器。
srcElement,獲得事件源對象。
keyCode,發生事件時的按鍵值。
Button,發生事件時鼠標按鍵,1為左鍵,2為右鍵,3為左右鍵同時按。
3)screen對象,屏幕的信息(了解內容)
Screen.width、screen.height分辨率長寬。
4)clipboardData對象,對粘貼板的操作。
clearData(“Text”)清空粘貼板; 在瀏覽器中只能為text。
getData(“Text”)讀取粘貼板的值,返回值為粘貼板中的內容。
setData(“Text,val”)設置粘貼板中的值。
很多元素也有Oncopy、onpaste事件:
禁止復制內容:oncopy=“alert(‘禁止復制!’);return:false;”
禁止粘貼內容:onpaste=“alert(‘請勿粘貼!’);return:false;”
自動在復制的內容後添加版權聲明:
Function modifyClipboard(){
clipboardData.setData(‘text’,clipboardData.getData(‘text’)+’版權聲明’+location.href);
}
Oncopy=”setTimeout(‘modifyClipboard()’,100)”
//用戶復制動作後,過0.1秒以後再去改粘貼板中的內容。
5)history操作歷史記錄:
Window.history.back()後退;
Window.history.forward()前進。
也可以用window.history.go(-1)後退、window.history.go(1)前進。
【】Document屬性。 它是window對象的一個屬性,代表當前頁面的html文檔。
Document方法:
(1)write:向文檔中寫入內容。 經常在廣告代碼、整合資源代碼中被使用。
Writeln:同上,最後添加一個回車。
在onclick等事件中寫的代碼會沖掉頁面中的內容,
只有在頁面加載過程中write才會與原有內容融合在一起。
嵌入廣告(廣告聯盟)、嵌入能容(百度新聞)等 cnzz數據統計。
(2)getElementByld方法(非常常用),根據元素的id獲得對象,網頁中id不能重復。
也可以直接通過元素的id來引用元素,但有有效範圍之類的問題,
因此不建議直接通過id操作元素,而是通過getElementByld
Var 名 = documengt.getElementById(“id名”); //查找文件
Alert(名.value)
(3)getElementByName:根據元素的name獲得對象,由於頁面中元素的name可以重復,
比如多個RadioButton的name一樣,因此其返回值為對象數組。
遍歷並不像c#中的foreache,並不會遍歷每個數組,而是遍歷的key。
故遍歷需用普通for循環做。
(4)getElementByTagName:獲得指定標簽名稱的元素數組
比如getElementByTagName(“p”)可以獲得所有的<p>標簽。
DOM操作系列-01