2

何らかの理由で、IEはHTMLページから関数を呼び出せません。デバッガーの関数addEventで「実装されていません」と表示されます。私は途方に暮れていて、本当に助けていただければ幸いです。

これが私のウェブページのコードです(言語選択のオプションがある「select」タグの下)

<script type="text/javascript">
window.onload = addEvent((document.getElementById('eng')), 'click', redirectEng);
window.onload = addEvent((document.getElementById('chs')), 'click', redirectChs);
window.onload = addEvent((document.getElementById('ger')), 'click', redirectGer);
</script>
4

1 に答える 1

2

あなたが本当に欲しいのはこれだと思います:

window.onload = function() {
  addEvent((document.getElementById('eng')), 'click', redirectEng);
  addEvent((document.getElementById('chs')), 'click', redirectChs);
  addEvent((document.getElementById('ger')), 'click', redirectGer);
};

あなたのコードは FF の下で動作するかもしれませんが、それでも非常に悪いコードです。あなたは概念を誤解しています。.onload?への複数の割り当て 無意味。また.onload、関数でなければなりません。多分 FF はエラーをスローしません ( IE とは異なります) が、それでもあなたのコードは FF の下window.onloadでまったく動作しないと確信しています。

その特定のケースでは、私はそれを言わなければなりません (それは頻繁に起こるわけではないためです): それは IE のせいではありません。:-)

編集

どうやら IE にはいくつか問題があるようwindow.onloadです。このスレッドを読んでください:

window.onload() が最初のショットで IE 8 で起動しない

詳細については。ブラウザ間の互換性については、 jQueryなどの有名な JavaScript ライブラリを確認することをお勧めします。jQuery を使用すると、タスクは次のように簡単になります。

$(function(){
    $( '#eng' ).click( redirectEng );
    $( '#chs' ).click( redirectChs );
    $( '#ger' ).click( redirectGet );
});
于 2012-09-26T22:13:10.160 に答える