Websphere Portal Server で実行されている Spring アプリケーションで Dojo ツールキット 1.4.3 (他のバージョンは使用できません) を使用すると、IE8 でのイベントに問題が生じます (ひどい!)。
IE8 のタブ移動の問題は既知であるため、バックエンドがこれと関係があるとは考えていません。
Webページの任意のフィールドを押してタブを押し続けると、フォーカスがURL入力とボタンに戻り、それを繰り返した後にドキュメントに戻りません。Webサイトの要素をクリックすると、再追加されますその要素にフォーカスを移動しますが、タブをもう一度押すと、ブラウザーの上部に戻ります。
今、私の問題は、タブをずっと押してドキュメントからフォーカスを外した後に発生します。ブラウザーが DOM からイベントを削除しているように見えます。IE8 でコードをデバッグしましたが、コールバック関数をトリガーしていないようですが、タブ全体を実行していないときは正常に動作します。
私はdojo.disconnect()
イベントを使用して再追加しようとしましたが、その後dojo.connect()
無駄に呼び出されました。ここに小さなスニペットがあります:
var connectedObjects = {};
dojo.query(".someClass").forEach(function(inputField){
connectedObjects[inputField.id] = {};
connectedObjects[inputField.id].onfocus = dojo.connect(inputField, "onfocus", function(event){
if(connectedObjects[inputField.id]){
dojo.disconnect(connectedObjects[inputField.id].onkeyup);
connectedObjects[inputField.id].onkeyup = dojo.connect(inputField, "onkeyup", someCallbackFunction);
}
})
});
これを解決する方法について誰かアイデアがありますか?