javascript - window.event.srcElement 无法在 mozilla firefox 中工作

标签 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("", "");
    }
}

但仍然无法正常工作。希望有人能帮助我。

最佳答案

window.event 在 Firefox 中不存在,因此如果您尝试访问 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 .

关于javascript - window.event.srcElement 无法在 mozilla firefox 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13525317/

相关文章:

javascript - 使用 jQuery 每秒将 div 内容增加一个随机值

javascript - ng-bind 到 Promise 解析返回的值

javascript - 如何使用 mark.js 突出显示不同的搜索结果?

javascript - "Found ) when expecting ( "JavaScript

javascript - Grails:Ajax 参数未到达 Controller

javascript - 在浏览器地址栏中显示内容输入?

javascript - 与 d3 中的其他元素执行双 mouseup 事件

javascript - jquery datepicker 和 asp.net c# 空值

javascript - 将第一个字符大写的正则表达式

javascript - 如何在 div 上追加一个新的 div 并将 var 放入该新的 div 中