2016-12-02 396 views
0

我收到来自IE8用户的投诉(我知道)他们无法打开手风琴选项卡。IE8对象不支持属性或方法'addEventListener'

它们都带有以下错误:

SCRIPT438:对象不支持属性或方法 '的addEventListener'

 document.addEventListener("DOMContentLoaded", completed, false); 
     window.addEventListener("load", completed, false); 
     } 
     } 
     return readyList.promise(obj); 
    }; 
jQuery.ready.promise(); 

我目前使用jQuery 2.1.3

这以下脚本中还会出现错误:

<script type='text/javascript'> 
$(document).ready(function() { 
document.getElementById('txt1').addEventListener('change', function() { 
var style = this.value == 'GP Practice' ? 'block' : 'none'; 
document.getElementById('txtpcode').style.display = style; 
}); 
}); 
</script> 

那里得到这个在IE8下工作,因为我知道addEventListener不支持。

+1

微软不再为IE8提供安全修补程序。鼓励人们升级到现代浏览器,而不是鼓励您的网站支持IE8。 – Quentin

+1

IE8持有浏览器市场份额的0.78%Worldwild(IE9 - 0.51%)(IE10 0.47%)**任何小于1%的值不值得花在** – Endless

+0

上我完全同意你们两人的观点。 – itguyme

回答

1

在IE8下,您需要使用attachEvent。使用纯javascript,您需要检测 用户 支持和使用attachEventaddEventListener的浏览器。

但我建议您使用JQueryon()函数。它包含逻辑,并将在每个浏览器中工作。

0

语法

附= target.attachEvent(eventNameWithOn,回调)

目标

的DOM元素监听事件上

eventNameWithOn

要侦听的事件的名称,前缀为“on”,就好像它是一个事件处理程序属性。例如,您可以使用“onclick”来监听点击事件。当触发此目标上的事件来调用

回调

回调函数。该函数将被调用,不带任何参数,并将此引用设置为窗口对象。连接 指示事件处理程序是否成功连接的布尔值。

+0

* attachEvent *不会在OP的代码推断的侦听器中设置* this *。有很多关于如何用* attachEvent *模拟* addEventListener *的例子。 – RobG

相关问题