gpt4 book ai didi

javascript - IE8 onclick 处理程序事件

转载 作者:数据小太阳 更新时间:2023-10-29 05:06:01 27 4
gpt4 key购买 nike

我已经阅读了 quirksmode.org 中的大部分相关文章,但我仍然不确定这篇文章:

使我的应用程序与 IE8 兼容(有趣有趣有趣)我在尝试为链接设置 onclick 事件时遇到了这个问题:

function myClickHandler(event)
{
alert(event);
}

var link = document.getElementById("myLink");
link.onclick = myClickHandler; //first option

相对于:

function myClickHandler(event)
{
alert(event);
}

var link = document.getElementById("myLink");
link.onclick = function() {
myClickHandler(event); //second option
}

使用第一个选项,myClickHandler 提醒 undefined。使用第二个选项提醒 [object Event] 这让我相信第一个选项没有将事件对象传递给处理程序。为什么在 IE8 上如此?

注意:不想使用 attachEvent,因为我想在执行期间覆盖单个监听器,onclick 似乎很适合这里。

最佳答案

是的,事件对象不会作为参数传递给 IE <= 8 中的 DOM0 样式事件处理程序。您需要从 window.event 获取它。如果添加一个名为 event 的参数,在 IE <= 8 中这将是 undefined 并且事件处理程序中对 event 的引用将解析为未定义的参数而不是 window.event。我通常使用 window.event 在代码中明确说明这一点:

link.onclick = function(evt) {
evt = evt || window.event;
}

关于javascript - IE8 onclick 处理程序事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18309653/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com