JavaScript中的事件與異常捕獲詳析

這篇文章主要給大家介紹了關於JavaScript中事件與異常捕獲的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧

事件處理

【onClick】單擊事件、【onMouseOver】鼠標經過事件、【onMouseOut】鼠標移出事件、【onChange】文本內容改變事件、【onSelect】文本被框選事件、【onFoucus】得到光標事件、【onBlur】光標失去事件、【onLoad】網頁加載事件(在body標籤中添加)、【onUnload】網頁關閉事件(在body標籤中添加或者使用window.onload=function(){}

事件註冊及監聽

1、 DOM0級事件處理

在標籤中添加onClick或其他事件的屬性並賦值爲JS的自定義方法名

onClick="dongfun(20)"

兩種方法在事件中得到事件的標籤對象:

<div id="divid" onMouseOver="overbut(this)" onMouseOut="outbut()">東小東</div>
<script>
 //通過參數傳遞對象
 function overbut(obj){
 obj.innerHTML="事件觸發發,鼠標在我的範圍";
 }
 //通過ID查找到對象
 function outbut(){
 document.getElementById("divid").innerHTML="再見見";
 }
</script>

內容改變監聽:

方法一

<input onChange="this.style.backgroundColor='red'"> 

方法二

<input id="inid" onChange="inputbut(this)">
<script>
 function inputbut(obj){
 obj.style.backgroundColor="green";//更改樣式 
 }
</script>

2、 DOM1級事件處理

通過標籤或者ID尋找到對象,進行事件監聽,一個事件只能對應一個事件處理函數,在HTML中不用進行註冊

function dongfunx(){
 alert("東小東彈框");
 }
//找到對象
var h1objx=document.getElementsByTagName("h1")[0];
//註冊事件
h1objx.onclick=dongfunx;
//清除事件
h1objx.onclick=null;

3、 DOM2級事件處理

通過標籤或者ID尋找到對象,進行事件監聽,一個事件只能對應多個事件處理函數,在HTML中不用進行註冊

//通過ID找到標籤對象
divobjx=document.getElementById("divid");
 
//添加監聽事件,可以添加多個相同或者不同的事件
//參數(事件名,處理函數名),其中事件名是普通事件中去掉“on”前綴
divobjx.addEventListener("click",onck1);
divobjx.addEventListener("click",onck2);
 
//事件處理函數
function onck1(){
 alert("----- onck1 -----"); 
 }
function onck2(){
 alert("----- onck2 -----"); 
}
 
//移除點擊事件
divobjx.removeEventListener("click",onck1);

匿名方法實現

 divobjx=document.getElementById("divid");
 divobjx.addEventListener("click",function(){
 //執行操作內容
 alert("----------");
 });

補充:

阻止HTML的默認事件

<a href="https://www.cnblogs.com/dongxiaodong/" rel="external nofollow" >跳轉</a>
<script>
 function dongfunx(eventx){
 eventx.preventDefault();//阻止默認事件,不進行跳轉
 }
 //找到對象
 var aobjx=document.getElementsByTagName("a")[0];
 //註冊事件
 aobjx.onclick=dongfunx;
</script>

頁面加載完畢監聽:

 window.onload=function(){
 alert("頁面加載完畢");
 }

異常捕獲

如果程序執行時遇到異常且未進行異常捕獲,則程序將終止執行,如果有異常捕獲,則可以繼續執行異常以下的代碼。

捕獲所有異常:

try{
 //alert(jj);//未定義變量異常
 throw("東小東異常");//手動拋出異常,參數爲異常內容
}catch(e){
 alert("捕獲的錯誤:"+e);
 }

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對神馬文庫的支持。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章