这是我的代码。
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("", "");
}
}
但尚未奏效。希望有人能帮帮我。
答案 0 :(得分:4)
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。