
2年位前までは問題なかったのですか、
とあるぺージーでJavascriptでdocument.writeで計算結果を出すページがあります。
15年ほど前にJavascriptもろくにわからず、作ったのですが、
onclick=history.back()で元の計算入力画面に戻らず、googleの検索結果まで戻ってしまいます。
ブラウザの解釈が違うことになったのかもしれませんが、元の計算入力画面へ戻すにはどうしたらよいでしょうか?
document.write ("<br>","<input type=button value=もう一度計算する! onclick=history.back()>","</br>");
作りがめちゃくちゃなことは否定しませんが、どうぞこの低能な私にアドバイスお願いします。
そのページ(私のページなのでリンクを書きます)
http://delorean2.cool.coocan.jp/
No.3ベストアンサー
- 回答日時:
No2です
Location.replace(url);
で、直接指定しても動作しませんか?
https://developer.mozilla.org/en-US/docs/Web/API …
あるいは、念のためにタイムスタンプをクエリに追加しておくとか…
まぁ、わざわざ遷移する必要も無いような内容の印象ですので、No2の3)のような解決法が簡単そうな気もしますが…
【 表示切替の一例 】
<!DOCTYPE HTML>
<html lang="ja">
<head><title>Sample</title>
<style type="text/css">
.page { padding:1em; background-color:#FFC; }
.page.hide { display:none; }
.trigger{ margin:16em 0 1em 1em; }
</style>
<script type="text/javascript">
/* 表示の切り替え */
document.addEventListener("click", (e)=>{
let t = e.target;
if(t.nodeName == "INPUT" && t.classList.contains("trigger")){
document.querySelectorAll(".page").forEach((el)=>{
el.classList.toggle("hide");
});
}
});
</script>
</head>
<body>
<div class="page">
<h4>◇ 入力の表示</h4>
<input type="button" class="trigger" value="計算結果へ" />
</div>
<div class="page hide">
<h4>◇ 結果出力の表示</h4>
<input type="button" class="trigger" value="戻る" />
</div>
</body>
</html>
注) IEはアロー関数やforEachに未対応なため動作しません。
(記述法をかえることで対応は可能)
Location.replace(url)試したのですが、駄目でした。
せっかく書いていただいた文はちょっと理解できません。
少し勉強しないとダメかもです。
ひとまずありがとうございました。
No.2
- 回答日時:
こんにちは
理解なさっているかどうかわかりませんが、計算結果の表示には「ページを遷移」しているわけではなく「文書を上書きで書き直す」という方法になっています。
ですので、ブラウザのアドレスバー内の表示は変わっていないはずと思います。
これでは履歴には残らないだろうと思って簡単に試してみたところ、ブラうザによって反応が異なるようです。
手元のIE、Fxでは戻れるようですが、Chromeは反応しません。
対処法としては、
1)きちんと遷移して、履歴に残るようにする
2)history.backではなく、reloadやlocation.hrefで再ロードさせる
3)同一ページ内で処理するのであれば、結果を上書き(=元の内容が消去される)せずに、タブ表示などと同様に表示/非表示の切り替えで対処する
などの方法をとることで、一応、目的は達せられるのではないかと思います。
>作りがめちゃくちゃなことは否定しませんが、~~
「作りがめちゃくちゃ」であれば、思うように動作しなくても仕方がないのではないでしょうか?
もしそうなのなら、そのあたりを「めちゃくちゃ」ではなくすることから始めた方が宜しいかと。
回答ありがとうございます。
確かにブラウザによって挙動が違い、
reloadを使うとクロームブラウザでは今く動くけど、EdgeではNG。
location.hrefだとうまくいきません。
その当時はフレーム内で、別のhtmで動かしていたのでうまくいっていたのですが。。。
今フレーム動かないみたいだし。
作りは良くないですが、時代が更に悪くした部分もあります。
場当たり的でも動けばと思ったのですが、クロームとEdgeで両立させるにはこのままでは無理かもしれません。
参考になりました。
No.1
- 回答日時:
history.back()はこのコードが実行されるWebブラウザの画面遷移の履歴で1つ前に戻る、、、つまりWebブラウザのウィンドウ上部などにあるBackボタン(←ボタン)を押すのと同じです。
お使いのWebブラウザでBackボタンを長押しするなどして表示される履歴の1つ前がGoogleの検索結果画面になっていませんか?
つまりご自身が「1つ前の画面」と思っておられる画面はURLを直接入力して表示した画面であるため画面遷移の履歴になっていないとかです。
参考まで。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Javaプログラミングの質問にな...
-
Java-jspの画面入力値保持について
-
FLASH、毎回ナウローディ...
-
Sessionがnullになりません。
-
三菱GOTの画面切り替えについて
-
[戻る]やhistory.backでの遷移...
-
strutsで、JSP→アクションクラ...
-
登録後、呼び出し元ページに戻...
-
ブラウザ画面で、変更した値が...
-
location.hrefでページ切替時の...
-
画面遷移の際に確認ダイアログ...
-
ServletからHTMLページへの遷移...
-
携帯専用サイトをPC上でキャプ...
-
Tomcatが暴走したのか?
-
【Objective-c】iPhone専用アプリ
-
jquery droppyについての質問
-
フレーム分けされたJSPでのsubmit
-
横スクロールを回避するには。。
-
Cookieが消える?
-
window.open()使用サブウィンド...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
三菱GOTの画面切り替えについて
-
C言語で今まで表示していた画面...
-
Java-jspの画面入力値保持について
-
登録後、呼び出し元ページに戻...
-
C# ログイン画面からメイン画面...
-
【C#】 FormClosingのイベント...
-
FormのsubmitでFormの内容がnull
-
location.hrefでページ切替時の...
-
ASP.NET 画面遷移前の状態を保...
-
Javaプログラミングの質問にな...
-
java初心者です。 画面Aで情報...
-
遷移元を判定したい!
-
セッション切れでのリクエスト...
-
画面を隠す・消す方法を教えて...
-
window.open()使用サブウィンド...
-
【JavaScriptわからない】1クリ...
-
MFCプログラミング
-
javaのstrutsを使った画面遷移...
-
子画面でもう一つ教えて下さい
-
CSVダウンロードでウィンド...
おすすめ情報