9

IE9 はまだベータ版ですが、すべて同じです。ここに質問があります。

プロトタイプ.js 1.6.1 を使用して、クリック イベントをリンクに追加し、デフォルトのリンク動作をオーバーライドするための適切な形式は次のようになります。

mylink.observe('click', function(e){
   doSomething();
   e.stop();
});

これは私が試した他のすべてのブラウザーで完全に機能しますが、IE9 は特殊なケースです。デフォルトのイベント動作が発生し、リンクがリンクされた場所に移動します。stop()IE9では機能していないようです。

次のコードは、IE9 で完全に機能します。

mylink.onclick = function(){
   doSomething();
   return false;
}

IE9 で使用するためにプロトタイプの方法論を修正するために何ができるか考えていますか?

4

2 に答える 2

9

1.7未満のprototype.jsバージョンは、ブラウザーをスニッフィングしてクロスブラウザー互換の修正を適用します。

protocol.jsは、ネイティブメソッドをその実装で上書きしますが、IE9では失敗します。DOMレベル2イベントをサポートしていますが。

新しいバージョンのprototype.jsには、「ブラウザスニッフィング」ではなく「機能検出」があるため、この問題はありません。

于 2010-11-05T21:02:30.173 に答える
1

次のタグを内部に配置して、ドキュメントモードをIE8標準に変更します<head></head>

<meta http-equiv="X-UA-Compatible" content="IE=8" />
于 2012-09-12T07:18:05.743 に答える