window.event.srcElement无法在mozilla firefox中运行

时间:2012-11-23 08:25:03

标签: javascript

这是我的代码。

function postbackOnCheck() {
    var o = window.event.srcElement;

    if (o.tagName == 'INPUT' && o.type == 'checkbox' && o.name != null && o.name.indexOf('CheckBox') - 1) 
    {
        __doPostBack("", "");
    }
}

我做了很少的研究。发现window.event.srcElement无法在firefox中使用。所以我把编码改成了......

function postbackOnCheck() {
    var o = window.event.srcElement || e.target;

    if (o.tagName == 'INPUT' && o.type == 'checkbox' && o.name != null && o.name.indexOf('CheckBox') - 1) 
    {
        __doPostBack("", "");
    }
}

但尚未奏效。希望有人能帮帮我。

1 个答案:

答案 0 :(得分:4)

Firefox中不存在

window.event,因此如果您尝试访问window.event.srcElement,则会出错。即使它有效,您也从未在任何地方定义e,因此e.target也会出错。

在兼容W3C的浏览器中,事件对象作为第一个参数传递给事件处理程序。在IE中,可以通过window.event访问它 因此,要获得对偶数对象的引用,我们必须这样做:

function eventHandler(event) {
    // if `event` is not defined, we fall back to `window.event`
    event = event || window.event;
}

要获取对触发事件的元素的引用,我们必须在兼容W3C的浏览器中访问event.target,在IE中访问event.srcElement

// if `event.target` is not defined, we fall back to `event.srcElement`
var target = event.target || event.srcElement;

了解事件处理和浏览器差异的一个很好的来源是quirksmode.org