解决 MSIE 中的 addEventListener 问题
在 Javascript 中,尝试使用 addEventListener 实现“复制”事件可能会导致以下错误MSIE:
<code class="javascript">document.getElementById('container').addEventListener('copy',beforecopy,false ); Object doesn't support this property or method</code>
解决方案
MSIE 与标准 addEventListener 方法不同,需要使用“attachEvent”。这可以通过条件检查来实现:
<code class="javascript">if (el.addEventListener){ el.addEventListener('click', modifyText, false); } else if (el.attachEvent){ el.attachEvent('onclick', modifyText); }</code>
或者,可以创建一个自定义函数来抽象此过程:
<code class="javascript">function bindEvent(el, eventName, eventHandler) { if (el.addEventListener){ el.addEventListener(eventName, eventHandler, false); } else if (el.attachEvent){ el.attachEvent('on'+eventName, eventHandler); } } //... bindEvent(document.getElementById('myElement'), 'click', function () { alert('element clicked'); });</code>
奖励:第三个参数 (useCapture)
addEventListener ('useCapture') 的第三个参数决定事件处理优先级。如果设置为 true,则表示需要捕获事件,其中事件在到达目标元素之前在元素的祖先处进行处理。
以上是为什么'addEventListener”对 MSIE 中的'复制”事件不起作用?的详细内容。更多信息请关注PHP中文网其他相关文章!