gpt4 book ai didi

javascript - attachEvent 在 IE > 8.0 中不起作用

转载 作者:可可西里 更新时间:2023-11-01 02:37:08 37 4
gpt4 key购买 nike

我用了一段时间的attachEvent,但是IE好像不支持了?

window.attachEvent("onload",Start_Wysiwyg);
window.attachEvent("onscroll",ScrollEditBar,false);

有人能解决这个问题吗?

最佳答案

.attachEvent() 在 IE9+ 中已弃用,并已在 IE11 中删除。

标准是 .addEventListener() (MSDN docs)。 MDN 文档有一个 section about compatibility .

您可以简单地运行一些功能检查代码来检查支持的功能是否存在:

if (window.addEventListener) {
// Check for addEventListener first, since IE9/10 have both,
// but you should use the standard over the deprecated IE-specific one
window.addEventListener('click', myFunc);
} else if (window.attachEvent) {
window.attachEvent('onclick', myFunc);
}

如果您必须附加很多事件监听器,那么您可能只想将所需的监听器附加方法缓存在一个变量中,并使用该变量在整个代码中附加您的事件,而不是让上面的方法检查每个事件监听器:

var addListener = function(){}; // Default to no-op function

if (window.addEventListener) {
addListener = window.addEventListener;
} else if (window.attachEvent) {
addListener = function(eventType, listener, useCapture) {
// attachEvent wants 'oneventType' instead of 'eventType'
window.attachEvent('on'+eventType, listener, useCapture);
};
}

// Now you can add listeners with a browser-agnostic function call!
addListener('click', myFunc);
addListener('hover', myOtherFunc);

您可以在 duplicate question 中阅读更多内容由@MartyIX 在对您的问题的评论中链接。那里的答案/评论中还有更多细微差别和方法,例如 IE9 需要 <!DOCTYPE html>为了使用 .addEventListener() .

关于javascript - attachEvent 在 IE > 8.0 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20180046/

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