重点:

  • 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]

以上为转载的代码,可信度有待测验;以下代码为自己写的,绝对可用:

if(navigator.userAgent.indexOf('MSIE') != -1){
    event.cancelBubble=true;
    event.returnValue=false;
    alert(event.cancelBubble);
   }else{
    evt.preventDefault();
    evt.stopPropagation();
   }

posted on 2009-04-07 08:49  xwood  阅读(166)  评论(0)    收藏  举报