Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript IE9怪癖模式不';t将事件参数传递给事件处理程序_Javascript_Internet Explorer_Internet Explorer 9 - Fatal编程技术网

Javascript IE9怪癖模式不';t将事件参数传递给事件处理程序

Javascript IE9怪癖模式不';t将事件参数传递给事件处理程序,javascript,internet-explorer,internet-explorer-9,Javascript,Internet Explorer,Internet Explorer 9,我对IE9怪癖模式有问题。我已经向输入元素注册了oncahange事件。到目前为止,这是可行的,但在IE9中,我们的站点进入了怪癖模式(就是这样),我遇到了一个问题,浏览器没有将事件对象传递到我的处理程序方法中 document.getElementById("foo").onchange=myChangeMethod; function myChangeMethod(event){ //In IE 9 quirks mode "event" is undefined... if(eve

我对IE9怪癖模式有问题。我已经向输入元素注册了oncahange事件。到目前为止,这是可行的,但在IE9中,我们的站点进入了怪癖模式(就是这样),我遇到了一个问题,浏览器没有将事件对象传递到我的处理程序方法中

document.getElementById("foo").onchange=myChangeMethod;
function myChangeMethod(event){
  //In IE 9 quirks mode "event" is undefined...
  if(event != undefined){
    //do stuff
  }
}
这可以通过打开WebDeveloper控制台(F12),将BrowserMode设置为“IE9”,将文档模式设置为(IE5怪癖)在IE10(我假设IE9中的als)中进行测试。然后,浏览器的行为与将本机IE9设置为“IE9兼容模式”和将文档模式设置为“怪癖”相同

是否有可能以某种方式获取事件对象


提前谢谢

我假设事件在IE quirks模式下是全局的,因此检查事件参数并分配
窗口。如果事件
未定义
,则可以解决问题:

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
  }
}
函数myChangeMethod(evt){
//在IE 9怪癖模式中,“事件”未定义。。。

evt=evt | | | window.event;//谢谢你的帮助!我另外手动设置了event.target,因为它在这里被称为event.srcElement!你好@Tarator,很高兴我能提供帮助。我在回答中添加了一个
target
vs
srcElement
注释。