DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> return false,對阻止事件默認動作的一些測試代碼
return false,對阻止事件默認動作的一些測試代碼
編輯:關於JavaScript     
首先頁面上有一個 <textarea id="test"></textarea>
我們為其綁定以下事件
復制代碼 代碼如下:
test.onkeydown = function(){
return false;
}

test.onkeyup = function(){
return false;
}

test.onkeypress = function(){
return false;
}

我們分別注釋掉其中的兩個事件,每次測試僅綁定一個事件。
很明顯我們每個函數都返回false,如果返回值可以阻止事件默認動作,那麼文本框將無法輸入任何內容。
看下面我測試的結果,注意紅的部分。
最後我分別把事件綁定兩次,每次返回false看是否能阻止默認動作。
還是用了一個a標記測試onclick 返回false 是否跳轉。
偵聽事件返回 false 是否阻止事件默認動作   chrome IE-8 firfox oper Safari onkeydown yes yes yes no yes onkeyup no no no no no onkeypress yes yes yes yes yes onclick yes yes yes yes yes keydown * 2 no 取最後的FN結果 no no no keypress * 2 no 取最後的FN結果 no no no click * 2 no 取最後的FN結果 no no no e.preventDefault(); yes no yes yes(keydown:no) yes e.returnValue = false no yes no no no
可以看出浏覽器表現確實不太一樣,當然IE是最麻煩的東西了。
最意外的是在oper中 綁定down 返回false,居然也不能阻止默認動作。
所以以後在寫要阻止浏覽器默認動作的時候,還用標准的方法比較好。(後面我提供了)
不然在多人協作的工作中,會相當麻煩。
演示的deom 有需要的可以發郵件給我。我就不貼上來了。
復制代碼 代碼如下:
/* * 用下面的代碼就不會發生悲劇了
* 最終結論
* E(e).stop(); 阻止時間冒泡
* E(e).prevent();阻止時間默認行為
*/
var E = function(e){
e = window.event || e;
return {
stop: function() {
if (e && e.stopPropagation) e.stopPropagation();
else e.cancelBubble = true
},
prevent: function() {
if (e && e.preventDefault) e.preventDefault();
else e.returnValue = false
}
}
}
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved