基本的に、XMLHttpRequest を使用せずにコンテンツをフォームに自動的に POST したいと考えています。
サイトは問題なく動作しますが、ブラウザーの [戻る] ボタンをクリックしてページに戻ると、ブラウザーの履歴に問題があります。
私のサイトは次のようになります。
<!DOCTYPE html>
<html>
<head runat="server">
<title>History Problem</title>
<script>
window.onload = function () {
try {
if ("<%= Request.Form["hiddenField1"] == null %>" == "True") {
var theForm = document.getElementById("myForm");
var theIframe = document.createElement('iframe');
theIframe.id = theIframe.name = "myIframe";
document.body.appendChild(theIframe);
theForm.hiddenField1.value = "SomeValue";
theForm.submit();
}
}
catch (e) {
var x = e;
}
};
window.onunload = function () { };
</script>
</head>
<body>
<form runat="server" id="myForm" action="" target="myIframe" method="post">
<input type="hidden" id="hiddenField1" name="hiddenField1" />
</form>
<br />
<a href="http://www.google.com">External Link</a>
</body>
</html>
トレースは、GET および POST 要求があることを示しています。これまでのところすべて問題ありません。しかし、「外部リンク」(google.com) をクリックしてサイトに戻ると、テスト サイトの 2 つの履歴エントリが表示されます。また、google.com の履歴エントリがなくなったようです。
これは、Internet Explorer でのみ発生します。
何か案は?