0

これは純粋に不可解な好奇心です。

OperaがIEの高度なイベントモデル()をサポートしていることは知っていますattachEventが、なぜdocument.attachEventこのブラウザでfalseと評価されるのですか?

4

1 に答える 1

3

IEを除くすべての場所にステルスが存在するのと同じ理由document.allで、無条件に使用するサイトをサポートしますが、条件付きでチェックするWebサイトでレガシーIEのみのコードパスをダウンさせないようにします(多くの場合、他の非標準のIEのものを使用します)。 tサポート)。これは11.62で導入され、ここで発表されました; それは注目に値するようでdetachEventwindow.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から。)

于 2012-11-27T01:12:45.573 に答える