我对IE9怪癖模式有问题。我已经向输入元素注册了一个oncahnge事件。到目前为止,这很有效,但是在IE9中,我们的网站进入了quirks模式(它就是这样),我遇到了问题,浏览器没有将event-Object传递到我的处理程序方法中。
document.getElementById("foo").onchange=myChangeMethod;
function myChangeMethod(event){
//In IE 9 quirks mode "event" is undefined...
if(event != undefined){
//do stuff
}
}
这可以在IE10(我想在IE9中)中进行测试,方法是打开Web开发人员控制台(F12),将浏览器模式设置为"IE9",将文档模式设置为(IE5-Quirks)。然后浏览器的行为与将本机IE9设置为"IE 9兼容模式"和将文档模式设置为"Quirks"相同。
是否有可能以某种方式获取事件对象?
提前感谢!
我想该事件在IE quirks模式下是全局的,因此检查事件参数并分配window.event
如果undefined
可以解决问题:
function myChangeMethod(evt){
//In IE 9 quirks mode "event" is undefined...
evt = evt || window.event; //<== HERE
// additionally in quirks mode evt.target is evt.srcElement,
// so if needed you could assign evt.target as:
var originator = evt.target || evt.srcElement;
if(evt){
//do stuff
}
}