この HTML を見てください:
<script>
function insert() {
document.getElementById("add").innerHTML="<input name=a>";
}
</script>
<button onclick="insert()">Insert new textbox</button>
<form>
<div id="add"></div>
<textarea name=b>a</textarea>
<a href="other.html">Go</a>
<!-- The content of other.html does not matter -->
</form>
このページを Chrome (Win7 64bit、24.0.1312.52 m) で開きます。
- 「b」のようなテキストをテキストエリアに追加します(テキストエリアの値は「ab」になります)
- 「移動」リンクを選択すると、other.html が表示されます
- このページに「戻る」と、textarea の値は「ab」のままです。
- 「新しいテキストボックスを挿入」を押します
- 「移動」リンクを選択
- もう一度「戻る」と、textarea の値が「a」に戻ります。
この手順だけでなく、「新しいテキストボックスを挿入」を押すと、このページに「戻る」ときにフォームの変更が Chrome に記憶されなくなります。
これは他のブラウザでは発生しません (値を最後まで「ab」に保つことができます):
- オペラ 11.11
- Firefox 12.0
- IE 9.0.12
これはChromeのバグですか?または、これを回避する何かがありますか?