私がいる状況について誰かが情報やフィードバックを持っているかどうか疑問に思っています. これは IE9 でのみ発生しますが、Safari、Chrome (最新)、FF (Ver 5/6)、IE8、および IE9 に対してのみテストしました。
コードは次のとおりです。
<!DOCTYPE html>
<html lang="en-us" dir="ltr">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" >
<title>IE9 test</title>
</head>
<body>
<h1>Testing</h1>
<form method="POST" id="submit_form">
<input type="text" name="x" value="xxxx" />
<input type="text" name="y" value="yyyy" />
<button type="submit" class="btn_sign_in" id="btn_logon" onclick="this.disabled=true;document.forms[0].submit();">Submit</button>
</form>
</body>
</html>
問題のある部分は次のとおりです。
onclick="this.disabled=true;document.forms[0].submit();"
このコードは長い間私のサイトにありましたが、IE9 が今年リリースされたばかりなので、二重送信の問題に遭遇したのはこれが初めてであり、おそらく最近では IE9 を使用する人がますます増えているため、この問題についてユーザーから苦情を受けています。 .
最も難しいのは、二重送信の問題が常に再現可能であるとは限らないことです。2 回送信される場合もあれば、1 回送信される場合もあります。
私の現在の回避策は、次の変更です。
<meta http-equiv="X-UA-Compatible" content="IE=edge" >
次のように変更します。
<meta http-equiv="X-UA-Compatible" content="IE=8" >
これにより、IE9 は IE8 との互換性を使用するようになり、送信のために Javascript が適切に実行されます。
マイクロソフトのサポートに電話したところ、これは「Javascript の互換性の問題」であるとのことでした。そのため、サイトが IE9 で適切に動作するように Javascript を微調整する必要があります..(当たり前!)
とにかく、私のコードです:
onclick="this.disabled=true;document.forms[0].submit();"
はそもそも間違っていますか?他のブラウザは文句を言っていませんが、そもそもこれは正しくないのでしょうか?
誰かが同様の問題に直面している場合は、さらに情報やフィードバックをいただければ幸いです。現在、X-UA-Compatible を IE=8 に変更しない場合、コードを次のように変更できます。
onclick="this.disabled=true;"
これにより、二重送信の問題も解決されますが、注意すべき IE9 の互換性の問題のリストもありますか?
ありがとう!