这纯粹是一种令人费解的好奇心。
我知道Opera支持IE的高级事件模型(attachEvent
),但为什么document.attachEvent
在此浏览器中评估为false?
答案 0 :(得分:3)
出于同样的原因,document.all
除了IE之外在任何地方都有隐秘的存在:支持无条件使用它的网站,但是为了避免在有条件地检查它的网站上使用传统的仅IE代码路径(通常使用其他不支持的非标准IE事物)。这是在11.62中引入的,宣布here;值得注意的是,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。)