• ベストアンサー

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

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

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

  • ベストアンサー
noname#236955
noname#236955
回答No.2

jquery を使用しているようですので、animate を使ってざっくりですが下記のような感じとかいかがでしょうか。 $(window).on("pageshow", function() { $("html, body").animate({ scrollTop: 0 }); });

sakana2016
質問者

お礼

ご回答いただきありがとうございます。 こちらのコードで希望通りの動作になりました。 試しに、$(window).on("pageshow", function() {});をwindow.onload = function () {}に変えても動作しました。

その他の回答 (1)

  • t_ohta
  • ベストアンサー率38% (5071/13250)
回答No.1

history.back() で戻ってきた時はキャッシュが表示されるだけなのでonloadイベントは発生しません。 使えるとしたら onpageshow イベントですかね。

sakana2016
質問者

お礼

早速のお返事ありがとうございます。 onpageshowを試してみたのですが、こちらでもページ上部へは移動しませんでした。

関連するQ&A

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

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

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

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

  • history.back()-ページ内リンク除外

    JavaScript初心者です。 今回いろいろなページからアクセスされるページにhistory.back()を利用して、戻るボタンを配置したいと思っています。 <a href="javascript:history.back();">では、そのページ内でページ内リンクを使用してしまうと、前のページには当たり前ですが戻れないです。 ページ内リンクを押した場合を除きたい場合どのように記述すればいいのか分からず途方にくれています。大変恐縮ですがご教示頂ければ幸いです。 宜しくお願い致します。

  • 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」のままです。 記述の方法がおかしいのか、もしくは同じ現象が起こって回避方法をご存知の方、いらっしゃいましたら、 教えてください。 お願いします。

  • 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が動作します。 どなたか同じような経験をされた方、いらっしゃいますでしょうか。

  • ページ読み込み時に自動でスクロール

    <body>にonloadを記述する方法以外で あるページを読み込んだ時に、自動的にページ最下部へ スクロールさせたいのですが 以下コードを記述してもエラーも起こらず、何も起きませんでした。 <script type="text/javascript" language="javascript"> <!-- window.onload = new function(){ window.scrollBy(0,300) }; window.onload = new function(){ alert("aaa") }; // --> </script> ちなみに、下側のalertは問題なく動作しております。 scrollby以外でのスクロールでもいいので、ご存じの方教えて下さい。 (できれば一瞬でスクロールする方がいいです。)

  • history.back() について

    ある入力フォームを作成しています。 入力エラーがあった場合、エラーメッセージを表示するとともに、 history.back() を使用した「戻る」ボタンを表示させます。 この戻るボタンを押して入力フォーム画面へ戻った場合、 入力した内容がフォームに残っているはずなのですが、 WindodwsXP、IE6 の環境では、クリアされてしまうことがわかりました。 これはIEの設定によって回避できるのでしょうか? もし、回避できないとしたら、history.back() に替わるJavaScriptって あるのでしょうか?値をクリアしないで前のページに戻るには、 やはりJavaScriptにたよらず、値の受け渡し処理をやって あげないとダメでしょうか? ご存知の方いらっしゃいましたら教えてください。 よろしくお願いします。

  • javascriptでonclickに複数関数を割

    javascriptでonclickに複数関数を割り当てる場合 HTML内であれば、 <button ... onClick="a1();a2();a3();"> でいけると思いますが javascriptにて function a1() { } function a2() { } window.onload = "a1;a2;" のような記述は駄目でした 一つであれば window.onload = a1; でOKですが javascriptでonclickなどに複数関数を割り当てる 書式を教えてください よろしく、お願いします

  • history.backで戻ったときのjs処理

    はじめまして、javascript初心者です。 仕事でwebサイトを作っておりますが、わからないことがあり質問させていただきました。 history.backで前のページに戻ったときにアニメーションを実行させない方法はございますでしょうか。 トップページに外部から訪れた場合のみ、アニメーションを実行させています。 判別はreferrerを使用し、自ドメインを含んでいなかったら実行というような処理をしています。 トップページにはお問い合わせフォームがあり、お問い合わせフォーム→確認画面→戻るを押下した際にアニメーションが実行され、ページのトップへ戻ってしまいます。 「戻る」ボタンには「onClick="history.back()"」を使用しています。 aタグのリンクで処理をすればアニメーションは実行されないのですが、フォームの入力内容がリセットされてしまいます。 入力内容を維持したまま、アニメーションを実行させない方法はございますでしょうか。 ご教示いただけますようお願い申し上げます。

  • ページの移動を禁止したい

    Javascriptではページが閉じられた、または移動するときに関数を実行させるwindow.onunload = function(){......}という書き方が出来ますが、これでページの移動をキャンセルさせることって出来ませんか?アドレスバーに違うアドレスを入力された時、ハイパーリンクをクリックされた時にその移動が実行されないようにしたいのです。

専門家に質問してみよう