私は Web 開発にかなり慣れていませんが、コツをつかんでいると思います。私が遭遇し続ける唯一の大きな問題は、クロスブラウザーの互換性の問題です。
ユーザーが入力を完了した後に関数を呼び出す Web ページにテキストエリアがあります。これを行うために、jQuery と setTimeout を使用して、関数を呼び出す前に少し待機しています。これにより、キーを押すたびに関数が呼び出されなくなります。関数が何らかの処理を行って返すサーブレットにリクエストを送信するため、キーを押すたびに呼び出す必要はありません。
コードは Chrome では問題なく動作しますが (デバッグには Chrome を使用します)、IE7 では動作しません。ここにあります:
var timer = null;
$("#scriptInput").keypress(function() {
clearTimeout(timer);
var thisEvent = window.event;
timer = setTimeout(function() {validateScript(thisEvent);}, 500);
});
function validateScript(evt) {
var code = (evt.keyCode) ? evt.keyCode : evt.which;
//check which key was pressed...
//don't need to send a request on key presses of CAPSLOCK, SHIFT, and ARROW keys
if(code != 20 && code != 16 && code != 37 && code != 38 && code != 39 && code !=40){
sendRequest(2);
}
}
ご覧のとおり、私はすでに IE7 との互換性を実装するために何度も試みましたが、役に立ちませんでした :\
IE7 を使用し、アップグレードする権限を持たない多くのマシンで使用されるため、少なくとも IE7 と互換性がある必要があります。
さらに情報が必要な場合はお知らせください。ありがとう!
PS "scriptInput" は、これが影響しているテキストエリアの ID です。