• 締切済み

history.back スクリプトオフのブラウザで表示させない方法ありますか?

history.back=戻る 機能を使いたいのですが、JavaScriptをオフにしているブラウザでは、表示されないようにするにはどのような「方法」「スクリプト」を使えばいいのでしょうか? ボタンを表示させるブラウザを振り分けるスクリプトで オフの場合とオンの場合で読み込む外部スクリプトを振り分ければよいのか?と漠然と考えているのですが 記述方法が分かりません。。。 <input type="button" value=" 戻る " onClick="history.back()"> 以外で戻るスクリプトがあれば教えてください。 ◎動作させたい環境:  NN 4.7*~7.1  IE 4.01~6.0

みんなの回答

回答No.3

まずスクリプトがオフという事なので、スクリプトで処理する事は出来ません。 そしてスクリプトはクライアント側(閲覧者の環境)で動くので、サーバー側で動く CGI 等での制御も不安定ではないかと。 で、1つは #1 の方の提示の様にオンオフで別々の記述を用意する。 もう1つは、 <a href="~" onClick="history.back(); return false;" onkeypress="history.back(); return false;">戻る</a> スクリプトがオンならイベントにて false が返りリンク先へは行きませんので。 (history.back(); は有効です。) 当然スクリプトがオフならイベント自体が無効なのでリンク先へ行きます。 で、前者と後者の利点,欠点は、 スクリプトにエラーがあった時に前者だとオンオフ用が共に表示されませんが後者だとオンオフ関係なくリンクが生き残ります。 ステータスバーへのリンク先表示は前者では偽りはありませんが後者は back() が有効でもリンク先を表示します。一応、ステータスバーを書き換える処理も出来ますが、ブラウザによっては無効だったりその機能だけ無効にしたり出来たりと・・・。 で、結局理想は、 <script type="text/javascript"> <!-- document.write('<input type="button" value=" 戻る " onClick="history.back()">'); // --> </script> <a href="~">サイトトップに戻る</a><br> <a href="~">カテゴリトップに戻る</a><br> と、ほとんど #1 の方の提示で、ただ <noscript> でなくオンオフに関係なくリンクを用意という点が違うだけです。 これによりスクリプトが誤動作しても どこかしらに戻れます。

kekeke4545
質問者

お礼

ありがとうございます。 <a href="~" onClick="history.back(); return false;" onkeypress="history.back(); return false;">戻る</a> こんな記述方法もあるのですね 非常に参考になりました。 ステータスバーへのリンク先表示が必須ではない、コンテンツの時にはこちらも試してみます。 ありがとうございました。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

PHPやCGIで、HTTP_REFERERの値を元にHTML に埋め込む手はありますが、これも確実ではありません。

kekeke4545
質問者

お礼

ありがとうございます。 >PHPやCGIで、HTTP_REFERERの値を元にHTML >に埋め込む手はありますが、これも確実ではありません。 確かに大本のシステムに手を加えないと 難しそうですね。。。 もっと大規模な開発のときには、ぜひとも検証させていただきます。

  • leaz024
  • ベストアンサー率75% (398/526)
回答No.1

スクリプトがOFFになっている場合、history.back() と同じ動作をさせる方法はありません。 また、スクリプトがOFFなら外部スクリプトも動かないので、ON/OFFで振り分けることもできません。 スクリプト依存の内容を、スクリプトOFFの場合に表示しないようにするには、それ自体をスクリプトで出力するようにします。 <script type="text/javascript"> <!-- document.write('<input type="button" value=" 戻る " onClick="history.back()">'); // --> </script> また、スクリプトがOFFの場合の内容は <noscript> ~ </noscript> に書きます。 <noscript> ブラウザの「戻る」ボタンで戻ってください。 </noscript> とか、 <noscript> <a href="~">サイトトップに戻る</a><br> <a href="~">カテゴリトップに戻る</a><br> </noscript> のような感じ。

kekeke4545
質問者

お礼

ありがとうございます。 確かに、スクリプトがオフになっている時点で、振り分け機能が使えるはずはありませんよね。。。基本的な点が抜けていました。。。 <script type="text/javascript"> をつかった記述方法が分からず <noscript>が使えていなかったので 教えていただいたスクリプトで希望通りの動作が得られると思います。 本当にありがとうございました。

関連するQ&A

  • JavaScriptが表示されません

    JavaScriptの練習をしています。 階層型メニューの表示ができるようになりたいのですが、今のところは基礎からと思い、単純なところから初めて・・・みようとしたのですが どしょっぱつから、ひっかかりました ◆例1 <script language="JavaScript"> <!-- document.write(こんにちは); //--> </script> ◇結果 IE画面上に、なにも表示されません ※以前、全く同じ構文で試したときには こんにちは が表示されました。 ※環境は同じで、変わっていません ◆例2 <form> <input type="button" value="戻る" onclick="history.back()"> <input type="button" value="更新" onclick="location.reload()"> <input type="button" value="進む" onclick="history.forward()"> <input type="button" value="トップページへ" onclick="location.href='http://www.red.oit-net.jp/tatsuya/index.htm'"> </form> ◇結果 これは、表示されました。 何回試しても、ちゃんと表示されます +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ いったい何が問題なのでしょうか?

  • history.backについて

    お世話になります。 ASP.net(VB.net)、IE6で作成しています。 フォームに「戻る」ボタンを設定して、 クリックすると1画面前に戻るという処理をしたいのですが、うまくいきません。 記述方法としては 1.HTMLに直接書き込む <asp:Button id="btnPre" style="Z-INDEX: 103; LEFT: 416px; POSITION: absolute; TOP: 320px" runat="server"Height="40px" Width="106px" Text="戻る" onClick="history.back()"> </asp:Button> 2.jsファイルを呼び出す ※aspx側 Me.btnPre.Attributes("onClick") = "pageBack()" ※jsファイル側 function pageBack(){ history.back(); } 3.クリックイベントでJavaScriptを埋め込む Private Sub btnPre_Click -以下略- Dim wkScript As String wkScript = wkScript & "<SCRIPTlanguage=""JavaScript"">" & vbCrLf wkScript = wkScript & " history.back();" & vbCrLf wkScript = wkScript & "</SCRIPT>" & vbCrLf RegisterStartupScript("Jscript", wkScript) End Sub のいずれかで考えているのですが、 1の場合 'history' は 'ASP.MainMenu_aspx' のメンバではありません。 (画面名は「MainMenu_aspx」です) 2と3の場合は、前の画面を読み込みにいくのですが、(タスクバーで確認) 表示は「MainMenu_aspx」のままです。 記述の方法がおかしいのか、もしくは同じ現象が起こって回避方法をご存知の方、いらっしゃいましたら、 教えてください。 お願いします。

  • JavaScriptのinput要素のonclick内で直接JavaS

    JavaScriptのinput要素のonclick内で直接JavaScript文を書きたい <input type="button" onclick="func()" value="ボタン"> のようにonclick内で関数を呼び出すことはできますが、 以下のようにスクリプトを直接書き込むのは可能でしょうか? (これは私が適当に考えただけなので多分動作はしませんが) <input type="button" onclick="javascript:( var a = 123; alert( a ); )" value="ボタン"> というのもちょっと試したいだけのときなど、 なるべく外部呼出しにしたくないことも多々あるもので・・

  • history.backで戻ったページを更新したい

    onClick='history.back();'で戻ったページを、 戻ったタイミングで更新(リロード)したいのですが、 どうすればよいでしょうか。 「JavaScript」か「PHP」で書く方法を教えてください

  • チェックボックスのチェック

    チェックボックスのチェックして送信した後のページから送信前のページに戻るとチェックボックスがチェックされた状態でブラウザで表示されます 1 2ここにチェックを入れて削除すると 3 1 3戻るを押した時にここにチェックが入ってしまいます javascriptで戻るボタンをつくっていますが他にチェックが残らずにに戻る方法はありますか? <input type=button value="戻る" onClick="history.back()"> よろしくお願いします

    • ベストアンサー
    • HTML
  • NN4.78で動きません・表示されません

    こんにちは、二つ質問させて下さい。 色々探してみたのですが、原因がわかりません。 1)<INPUT TYPE="button" value="クリック" onClick="klicken('hyouzi')" tabindex=1 style="color:#000000;border:solid 1px #ffffff;background:#ffffff"> <input type="button" value="閉じる" onClick="window.close()" tabindex=1> この二つがNN4.78で表示されません。とほほさんで調べたらNN4でも動作するようなんですが・・・何が間違っているのでしょうか? 2)innerHTML内で改行をしたいのですが、できないでしょうか? どちらかでもご存知の方いらっしゃいましたら教えて下さい、お願いします。

  • ボタン?

    <form> <input type="button" value="<---戻る"onclick="history.back()"> </form> 「<---戻る」 の色を変える方法はないのですか?

    • ベストアンサー
    • CSS
  • 元のソース 実際のコードが違う

    ブラウザで見る元のソースと 実際のコードが違います。 現在簡単なWEBページを作っているのですが いきなりcssがくずれ 頭の中で???となって調べてみた結果元のソースと 実際のコードが違いました。 特にどこかをいじった覚えもありません。 おかしな部分のソースです 実際のコード <input class="back" type="button" onclick="history.back()" value="戻る"> </form> </div> </body> </html> ブラウザの元のソース <input class="back" type="button" onclick="history.back()" value="戻る"> </form> </div> </body> </html>> </body> </html> </body> </html>click="history.back()" value="戻る"> </form> </div> </body> </html> とかなりおかしなことになっています。 ご教授お願いいたします。

    • ベストアンサー
    • HTML
  • OBJECTタグによるhistory.back非動作現象

    現在JSPベースのWebアプリ開発を進めております。 その中でOBJECTタグを用いてFLASHアプリを配置しているのですが、同ページ内にてOnclickイベントにてJavascriptのhistory.backを実行するボタンを配置しており、なぜかまったく動作しません。 <OBJECT CLASSID="****"> <PARAM *****> <PARAM *****> <EMBED SRC="****"> </OBJECT> <INPUT TYPE="BUTTON" ONCLICK="history.back()"> という感じです。 (かなり簡素化して記載しております) この場合にOBJECTタグをコメントアウトすると正常にhistory.backするため、なんらかOBJECTタグとhistroyとのよろしくない関連があるのかと、色々と調査をしておりますがなかなか情報が得られません。 完全に静的なHTMLではこのような現象は発生した経験は無いので、JSPとの兼ね合いも視野に入れて調べているのですが・・・ 何か情報をお持ちの方、いらっしゃいませんでしょうか? ちなみに、alert()などは正常に動作します。 ONCLICK="alert('hoge1');history.back();alert('hoge2')">とした場合は、 hoge1,hoge2共に動作し、history.backのみ何も反応がありません。 なお、history.lengthには整数値が入ってきておりますので、historyそのものは生きていると思われますし、またalert(history.back) とした場合には、function Back(){ [Native Code]}と表示されるため、Functionそのものはきちんと実行されているものと思います。 何か原因となるような情報や、解決策、回避策がお分かりの方教えて頂ければと思います。 動作環境:IE6SP2 ちなみにFirefox1.5で同ページの動作を確認すると、恐らくOBJECTタグを無視するだろう事から、正常にhistory.backが動作します。 どなたか同じような経験をされた方、いらっしゃいますでしょうか。

  • このソースって長所短所ありますかね?

    次のソースどちらも前面に戻るです。 javaはブラウザが対応しているかどうかが問題でしょうが、昨今、非java対応は無いと思います。 それ以外でメリット、デメリットありますか? 宜しく願います。 <a href="javascript:history.back()">[戻る]</a> <input type="button" value="前面に戻る" onClick="pageBack()">

    • ベストアンサー
    • HTML