0

私のhtmlヘッダーには次のものがあります:

<meta http-equiv="X-UA-Compatible" content="IE=7" >

私が使用するjavascriptでは:

showButtons: function() {
    $$("#score-window .buttons")[0].show();
},

IE9,10 を除くすべてのブラウザで完璧に動作します。IE9,10 では、関数の最初の呼び出しは問題ありませんが、$$ が「未定義」を返し、show() を呼び出すとコードが壊れるため、次は失敗します。

プロジェクトに含まれるプロトタイプ 1.6.0.2 を更新します。

4

1 に答える 1

1

これには 2 つの修正があります - 最初は直接修正です

$$('#score-window .buttons').invoke('show');

これにより、CSS セレクターに一致するすべての要素が反復処理され、show()それらで実行されます。

.buttons中にクラスを持つ要素が1つしかない場合にのみ、これを使用してください#score-window

これは機能し、セレクターに一致する要素がないかのようにエラーをスローしません。invoke()

また

2番目の修正では、要素が存在するかどうかを確認してから表示します

if($$('#score-window .buttons').length > 0) {
    $$("#score-window .buttons")[0].show();
}

これらの修正はエラーを直接修正しますが、CSS セレクターが 2 回目に要素を見つけられない理由を突き止めるために掘り下げる必要がある別のコアの問題があると思います。また、PrototypeJS 1.7.1 にアップグレードできる場合。

于 2013-03-01T15:27:27.157 に答える