フォームを送信して戻るとフォームの入力データが消える問題を回避する。(その2)
掲示板に書き込んだり、フォームを送信する前に、別のウィンドウにそのページを残す。
掲示板に書き込んだり、フォームを送信するとき、パラメタエラーなどで、前に戻ると入力データが消えていて、再度一から入力し直す、なんてことがあります。
フォームの送信前に CTRL+N または、 [ファイル] - [新規ウィンドウ] (IE7) または、 [ファイル] - [新規作成] - [ウィンドウ] (IE6) すると、新しいウィンドウに同じページが表示されます。
このとき、入力データがコピーされるケースもありますが、消えるケースもあります。
そこで、IEのコンテクストメニューを拡張して、人為的に新しいウィンドウを作成し、ページ内容をコピーします。
フォームの送信前に、ページ上で右クリックして、コンテキストメニューから、「ウィンドウの複製(W)」を選択します。
CopyWindow.htm
<head>
<meta http-equiv="content-type" content="text/html; charset=shift_jis">
<script language=vbscript defer>
set win=window.open(external.menuArguments.top.document.URL,"_blank")
Do While win.document.readyState<>"complete"
' alert win.document.readyState
Loop
win.document.body.innerHTML=external.menuArguments.top.document.body.innerHTML
win.document.title="複製:" & win.document.title
</script>
</head>
CopyWindow.reg
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\ウィンドウの複製(&W)]
@="C:\\どこか\\CopyWindow.htm"
こうして複製したウィンドウのタイトルには、元のタイトルの前に「複製:」が付きます。
このページからデータをコピーしたり、印刷するのは構いませんが、送信は、やめておいたほうがよいでしょう。
« フォームを送信して戻るとフォームの入力データが消える問題を回避する。 | トップページ | フォームの入力データなどが入った、そのとき実行中のソースを表示する。 »