[JS]取消事件
重點:
- Firefox沒有window.event的物件,必須透過addEventListener才能把event當成參數傳入function中。
可共用:
- 無
IE可用:
Firefox可用:
[SCRIPT]
window.onload = function() {
addEvent(document.getElementById("form1"), "submit", checkForm);
}
function checkForm(e) {
var obj = null;
if ( e.srcElement ) {
obj = e.srcElement;
} // if
else if ( e.target ) {
obj = e.target;
} // else if
// 取消submit
cancelEvent(e);
}
function cancelEvent(e)
{
if ( e && e.preventDefault ) {
// Firefox
e.preventDefault();
e.stopPropagation();
} // if
else {
// IE
e.cancelBubble=true;
e.returnValue = false;
} // else
return false;
}
function addEvent(obj, evType, fn)
{
if (obj.addEventListener) {
obj.addEventListener(evType, fn, false);
return true;
} // if
else if (obj.attachEvent) {
var r = obj.attachEvent("on"+evType, fn);
return r;
} // else if
else {
return false;
} // else
}
[/SCRIPT]
另一種方法:
[SCRIPT]
function fnTest(evt) {
evt=evt?evt:(window.event?window.event:null);
printObject(evt);
}
function printHTML(str) {
var div = document.getElementById('divMsg');
div.innerHTML = str;
}
function printObject(obj) {
var s = "";
for(att in obj) s += ("<li>"+att+"="+obj[att]+"</li>");
printHTML("<ol>"+s+"</ol>");
}
[/SCRIPT]
[BODY]
<input type="button" id="btnSave" value="TEST" onclick="fnTest(event);"/>
<div id="divMsg">divMsg</div>
[/BODY]
參考資料: