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も見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
フォームPOST後「戻る」時のチェック値の取得
JavaScript
-
メール送信フォームとhistory.back()
PHP
-
hiddenの値を消したくない!
JavaScript
-
-
4
HTMLで前の画面に戻る時、入力していた値が消えてしまいます。
PHP
-
5
onClickで関数呼出し後に、結果に応じてsubmitを実行する方法
JavaScript
-
6
JavaScriptのhistory.back(戻る)の命令が実行しません.
JavaScript
-
7
ブラウザの戻るボタンを押したときのデータの保持の仕方
JavaScript
-
8
Java-jspの画面入力値保持について
Java
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ServletからServletへの値渡し
-
三菱GOTの画面切り替えについて
-
Java-jspの画面入力値保持について
-
C言語で今まで表示していた画面...
-
フロントエンドフレームワーク...
-
ブラウザ画面で、変更した値が...
-
system("cls")について
-
ASP.NET 画面遷移前の状態を保...
-
フロントエンジニアで一人前と...
-
セッション切れでのリクエスト...
-
常に最大化で表示したい
-
親子画面での値の受け渡し方法
-
アクティブディレクトリ環境下...
-
FormのsubmitでFormの内容がnull
-
fc2 無料HPでindex.h...
-
【JSP】input typeで入力された...
-
Strutsのデータ受け渡しについて
-
iPhone 3GS でGmail 登録 同期
-
遷移元を判定したい!
-
ホームページにおいて新しく開...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Java-jspの画面入力値保持について
-
三菱GOTの画面切り替えについて
-
C言語で今まで表示していた画面...
-
ServletからServletへの値渡し
-
プログラミングで例えばゲーム...
-
C# ログイン画面からメイン画面...
-
遷移元を判定したい!
-
ASP.NET 画面遷移前の状態を保...
-
画面を隠す・消す方法を教えて...
-
ブラウザアドレスバーからのURL...
-
FormのsubmitでFormの内容がnull
-
ServletからHTMLページへの遷移...
-
Javaプログラミングの質問にな...
-
画像の縦横比固定の計算方法。
-
JAVAのセッション変数の上書き...
-
登録後、呼び出し元ページに戻...
-
Wi-Fiのパスワードが指定なしと...
-
system("cls")について
-
Beautiful Soupのインストール...
-
アドレスバーに引数を表示させ...
おすすめ情報