这纯粹是一种令人费解的好奇心。
我知道 Opera 支持 IE 的高级事件模型 ( attachEvent
),但是为什么document.attachEvent
在这个浏览器中评估为 false 呢?
这纯粹是一种令人费解的好奇心。
我知道 Opera 支持 IE 的高级事件模型 ( attachEvent
),但是为什么document.attachEvent
在这个浏览器中评估为 false 呢?
出于与除 IE 之外的任何地方都隐秘存在相同的原因document.all
:支持无条件使用它的网站,但避免在有条件地检查它的网站上使用遗留的仅 IE 代码路径(通常使用其他非标准的 IE 东西)支持)。这是在 11.62 中引入的,在这里宣布;似乎值得注意的是detachEvent
并且window.event
也被隐藏了。
至于为什么 Opera 这样做而其他人不这样做:Opera 历来支持它而不隐藏它,虽然人们认为完全删除它是可取的,但 Opera 支持它的遗产太多,无法实现这一点,破坏了诸如:
function _aspxAttachEventToElement(element, eventName, func) {
if(__aspxNetscapeFamily || __aspxWebKitFamily)
element.addEventListener(eventName, func, true);
else { if(eventName.toLowerCase().indexOf("on") != 0) eventName = "on" + eventName; element.attachEvent(eventName, func); }
}
(来自DevExpress。)
if (d.opera)
d.attachEvent("onmousewheel", j);
else
d.onmousewheel = h.onmousewheel = j;
(来自krpano。)