• ベストアンサー

前のページに戻るとページトップに戻るの併用方法

ホームページのページ内に前のページに戻るボタンとページトップ(同ページの最上部)に戻るボタンの両方をJavaScriptで設置したいのですが、方法がわかりません。 前のページに戻るは <a href="javascript:history.back()">戻る</a> としています。 ページトップ(同ページの最上部)に戻るは <a href="javascript:scrollTo(0,0);undefined;" onclick="return false;">ページトップに戻る</a> としています。 以上の両方を併用する方法を教えていただけないでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • my--
  • ベストアンサー率89% (91/102)
回答No.2

アンカーを利用したページ内の移動で履歴を残したくないってことですよね。 javascriptで移動処理をしてやるしかないのでは。 //ここから function cancel(e) { if (window.event) { event.cancelBubble = true; event.returnValue = false; } else if (e && e.preventDefault && e.stopPropagation) { e.preventDefault(); e.stopPropagation(); } return false; } function fragmentAnchor(e) { var h, targetElm, every, p, n; var elm = e.target || e.srcElement; if (elm.tagName != 'A') return; if ((p = (h = elm.href).lastIndexOf('#')) <= 0) return; h = h.substring(p + 1, h.length); if ((targetElm = document.getElementById(h))) scrollTo(0, targetElm.offsetTop); else { every = document.body.getElementsByTagName('*'); n = every.length; for (var i = 0; i < n; i++) { if (every[i].name == h) { scrollTo(0, every[i].offsetTop); every = null; break; } } if (every != null) return; } return cancel(e); } function backToTop(e) { var elm = e.target || e.srcElement; if (elm.className != 'back' && elm.className != 'top') return; if (elm.className == 'back') history.back(); else scrollTo(0, 0); return cancel(e); } if (document.addEventListener) { document.addEventListener('click', backToTop, true); document.addEventListener('click', fragmentAnchor, false); } else { document.attachEvent('onclick', backToTop); document.attachEvent('onclick', fragmentAnchor); } //ここまで ページ内の移動で履歴を残さなくなるはずです。たぶん。 <p><a href="#" class="top">ページトップに戻る</a></p> <p><a href="before.html" class="back">戻る</a></p> こちらは履歴がないとただのお飾りになってしまいますが、割り切ってしまえるなら。

ryupyon
質問者

お礼

ありがとうございます。 早速試してみた結果、ページ内で移動した後に前のページに戻ることはできないようです。直接前のページのURLを指定しないと無理みたいですね。

その他の回答 (1)

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

>併用する 併用ってどういうことでしょうか? とりあえずこんな感じでどうでしょう? <a href="#" onclick="window.history.back();return false;">戻る</a> <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> <a href="#" onclick="window.scrollTo(0,0);return false;">ページトップに戻る</a>

ryupyon
質問者

補足

早速回答ありがとうございます。 >併用ってどういうことでしょうか? 1つのページで両方使うって言いたかったんです。 >とりあえずこんな感じでどうでしょう? さっそく試してみました。 結果、ページトップに戻るを押した後、戻るで1つ前のページに戻ることができました。しかし、もう1つの壁にぶつかってしまいました。 ページ内でジャンプできるようにしているのですが、そのジャンプ以降だとジャンプする前の場所に戻ってしまいます。それも克服することは可能でしょうか? よろしくお願いします。

関連するQ&A

  • ページトップへスクロール

    webページをスクロールしていくと最後に「ページトップへ」のようなリンクがあって、クリックするとスクロールしてページトップでゆっくり止まるjavaを使用しているんですが、javaをオフにしているユーザーのために、同じリンクボタンで普通のアンカーでトップページに切り替わる(name属性を使った方法)のも併用したいのですがどうすれば良いのでしょうか。 リンク部分のソースはこれです。 <a href="javascript:pageup()">pagetop</a>

  • 戻るボタンを押すと、ページ下に飛んでしまいます・・

    HPをタグ打ちで作成しております。解決方法が見つからなかったので教えてください。 bodyに、A「戻るボタン」とB「ページのTOPへ戻る」リンクを設置しました。 <input type="button" value="戻る" onClick="history.back()"> <a href="#top">ページのトップへ戻る</a> BをクリックしてからAをクリックすると、前のページではなくBの場所へ戻ってしまうんです・・。 history.back()だからそうなってしまうんですよね? そこまでは分かるのですが、history.back()を何にすればブラウザの戻るボタンと同じように出来るのかわからないのでどなたか教えて下さい。 色々調べたのですが、検索の仕方が悪いのか解決策が見つかりません。 初心者で申し訳ありませんが宜しくお願い致します。

  • history.back使用時、ページトップへ移動

    お世話になります。 javascriptのonClick="history.back()"で前ページに戻った際、ページの最上部に移動したいのですが、どのように書けば良いでしょうか。 history.back先のページに window.onload = function () {$(window).scrollTop(0);} と書いたのですが、最上部に移動せず悩んでおります。 お時間がある際に、ご回答いただけましたら嬉しいです。

  • モバイルサイトに動的な「前のページへ戻る」ボタンをつけたい

    いつもお世話になります。 よろしくお願いします。 モバイルサイトに「前のページへ戻る」ボタンをつけたいのですが、履歴をたどり前のページへもどることは可能でしょうか? 下記のようにjavascriptで記述して試してみましたが、携帯で確認するとリンクがはずれた状態になってしまっています。 <a href="javascript:history.back()" accesskey="9">BACK</a>  何か方法があれば教えてください。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • <a href="#pagetop">以外での移動方法

    <a href="#pagetop">ページトップ</a>以外での、同一ページ内の移動方法を教えてください。 ページの先頭に、 <a name="pagetop"></a> を置いておいて、ページの下のほうに、 <FORM> <INPUT TYPE=button value="ページトップ" onclick="JavaScript:location.hash='#pagetop'"> </FORM> これで、移動できるのですが、これですとボタンになってしまいます。 普通のテキスト、もしくは画像にしたいのですが、どのようにしたら良いでしょうか? よろしくお願いします。

  • 新規ウインドウから他のページにいけますか?

    JavaScriptのwindow.openでページを表示した時に小さな別Windowも表示させるようにしています。 その画面を閉じるのに <input type="button" value="CLOSE" onclick="window.close()"> をクリックすると閉じるのですが、もう一つボタンを付けてそのボタンをクリックするとTOPページに戻るようにしたいんです。 location.href = "URL";で他のページにいけるんですよね? ボタンを表示させるには <input type="button" value="TOP" onclick="window.location.href="URL";"> でいいのでしょうか? やってみたのですが何も動きません。 どなたかわかる方、教えて頂けないでしょうか?よろしくお願いします。

  • トップページにリンクを貼る方法

    トップページにリンクを貼るときに、いつもだと"<a href="../index.html">topへ</a>"で指定しているのですが、たまたま指定を"<a href="/">topへ</a>" というふうに"/"のみで指定しても、どの階層からでもトップに戻ることができました。 これはHTMLの文法的には正しい記述方法なのでしょうか? とっても楽チンで簡単なので使いたいのですが、ちょっと不安です。 申し訳ございませんが、どなたかお助けください。 よろしくおねがいします。

    • ベストアンサー
    • HTML
  • javascriptで別窓で出したページとメインページで同時に動作を行ないたいのですが、教えて下さい。

    javascriptで別窓で出したページを登録ボタンを押すと、そのページが閉じて メインページがボタンを押したことで、切り替わるという動作を行ないたいのですが、 良い方法はありますか?教えてください。 <INPUT type='button' value='登録' onClick=\"opener.location.href='$order'\"> <A href=\"javascript:click_close();\">ウィンドウを閉じる</A> 今は、2つのリンクを貼っています。これを一つにしたいのですが、ご伝授下さい。 function click_close () { window.close(); }

  • ページの一番上にとばすには

    <A HREF="javascript:function voi(){};voi()" onClick="★">べージの一番上に</A> ★の部分に何か書いてページの上端にとばす方法を教えて下さい。

  • onclickでのページ内移動

    JavaScriptでページ内移動をしたいのですが HTMLでいうところの <a name="top"></a> <a href="#top"></a> をonclickで動作させたいのですがどうすれば出来ますか。 http://www.htmq.com/js/window_open.shtml で載っているのですが、これは新しいウィンドウを開くでwindow.openのところを変えれば出来ると思いますが どういう風に変えるのでしょうか。よろしくお願いします。

専門家に質問してみよう