電子書籍の厳選無料作品が豊富!

onloadでdocument.writeを呼び出してページ全体を書き換えるようにしているのですが、ブラウザの戻るボタンで戻れなくなりました。
書き換える前に戻って再びonloadしているみたいです。
IE6.0,NN7.0,Opera7.11で試してみたところ、IEでこの現象がおきました。
NNは期待通りに動きます。Operaは書き換える前の状態に戻りますが、onloadしない(Javascript無効用ページ)のでもう一度戻るボタンを押せばOKです。

ボタン右の▼で戻ることはできますが、戻るボタンを連打する癖のある人っていると思うんですね。
何か良い対処方法はあるでしょうか?

A 回答 (1件)

戻るボタンでスムースにページが移動するような形にするのであれば、根本的に違う方法を取った方が早いかも知れません。

ブラウザの戻るボタンにおける挙動を操作する方法はないようですので、ページの作り方を変えるのが早いのではないかと…

具体的なソースを示してみますが…

<html>
<head>
</head>
<body>

<script type="text/javascript"><!--
document.open();
document.write("JavaScript有効");
document.close();
// --></script>

<noscript>JavaScript無効</noscript>

</body>
</html>

上記のように、body内に記述したscript要素のJavaScriptでページ内容を書き出すようにしておき、JavaScriptが無効の環境ではnoscriptが適用されることを利用する方法では代用できないでしょうか。
上のようにすると、JavaScriptが有効な環境ではbody要素内のdocument.write()でJavaScriptが有効な環境に向けての内容が書き出されますし、JavaScriptが無効な環境では<script>は無視されて、<noscript>要素の内容が適用され、表示されると思います。
また、documentストリームをページロード後に開きなおすこともないので、ブラウザによって挙動に差が出ることもないと思いますし、戻るボタン一発で前のページにも戻れると思いますよ。

こういった方法ではいかがでしょうか?
見当違いでしたら、ごめんなさい。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
教えていただいたように<body>~</body>内に関数内部の文を書くことにより、スクリプトを少々いじることになりましたが解決いたしました。

お礼日時:2003/09/01 13:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!