問題タブ [popstate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
18209 参照

javascript - window.onPopState で e.preventDefault を実行することは可能ですか?

ユーザーが Web アプリに戻らないようにしようとしています。このために、 をキャッチして、戻るボタンの効果をキャンセルするようにwindow.onpopstate追加しました。e.preventDefault

しかし、それは起こらないようです。

popstateブラウザのイベントを防ぐことはできませんか?それとも私は何か間違ったことをしていますか?

0 投票する
0 に答える
66 参照

javascript - onpopstate は実行中ですが、コンテンツがロードされていません

そのため、戻るボタンが押されたときに動的に作成されたドロップダウンリストが値を保持しないというこの問題がありました。pushState を使用するように提案されました。したがって、pushState は適切に起動すると思います。これが私のコードです:

前述したように、動的に作成されたドロップダウン リストがあります。そのため、ユーザーが反撃した場合、次へをクリックする前にドロップダウンで選択した値を選択する必要があります。ドロップダウンのイメージは次のとおりです。

ドロップダウンリスト

だから私はこのように popstate 関数を書きました:

私の理解では、ブラウザーで戻るボタンが押されたとき、または history.back JavaScript 関数が呼び出されたときに、Chrome の開発者コンソールのイベント リスナーに表示される popstate をトリガーする必要があります。

popstate イベントリスナー

警告メッセージが表示されないのはなぜですか? そして、ドロップダウンの選択を以前の状態に更新しないのはなぜですか? 誰かが私にヒントを与えることができれば、それは素晴らしいことです。

ご協力ありがとうございました!

0 投票する
1 に答える
1455 参照

javascript - ウィンドウのポップステートは、2回のバッククリックの後、および2回ごとにのみトリガーされます

OK、こんにちは。スタック オーバーフローは初めてですが (登録に関する限り)、解決策を見つけるために定期的に使用しています。問題を検索しましたが、問題にほぼ関連するいくつかの記事や質問を見つけましたが、正確な問題に実際に答えているものはありません。これが何百万回も尋ねられた場合は、申し訳ありません!

私は JQuery にはかなり慣れていませんが、一般的に JavaScript の経験はある程度あります。私は、新しい Web サイトに実装しようとしている history.pushstate および history.popstate メソッドにまったく慣れていません。私は ajax を使用してコンテンツをロードしていません。コンテンツを iframe にロードしていますが、同じ原則が適用されます。それに応じてページ URL を更新し、ブラウザで前後に移動できるようにする必要があります。

私のコードからわかるように、私はかなり有能ですが、あなたの答えには優しくしてください!

OK、pushstate の実装に成功し、ページの読み込みは正常に行われているようです (例はここにあります... http://beta.casafondaradio.com ) 。効果。つまり、popstate 関数を起動するには、2 回クリックする必要があるようです。何が間違っているのかわかりません。

メイン関数は、関連するリンクの onclick 属性で起動されます。これを行うためのよりエレガントな方法があることは知っていますが、私はそれをシンプルで読みやすくしたかったのです!

私のリンク(ASP.NET)は次のようにフォーマットされています:

head セクションの私の Javascript コードは...

ボディ終了タグの前にある私の JavaScript コードは...

前述のように、上記のリンク先のベータ URL に例をアップロードしましたが、現在の状態 (つまり、動作していません) です。明らかに私は何か間違ったことをしていますが、それが何であるかはわかりません。

前もって感謝します!

解決しました! 私のloadPageData()機能を次のように変更しました...

function loadPageData(urlToOpen) { $('#contentFrame').remove(); var ifr = $('<iframe/>', { id: 'contentFrame', src: '/' + urlToOpen, style: 'height:100px;', load: function () { resizeiFrame(); } }); $('#frameContainer').append(ifr); }

frameContainerそして、元の DIV にの ID を追加しましiframeた!

0 投票する
0 に答える
505 参照

pushstate - history.pushState なぜ 2 回バック発行するのですか?

クリック機能を実行しているときにこのコードが好きで、ページの前に2ユニットを戻す必要があるのはなぜですか?

0 投票する
2 に答える
96 参照

javascript - Ajax が abort() onPopstate 後に動作を停止する

ユーザーが進む/戻るボタンをクリックしたときに未完了の AJAX 呼び出しが発生した場合に、次のコードを使用してabort()を実行しています。呼び出しを中止することはすべてうまく機能しますが、その後、関数の将来の呼び出しは機能しなくなります。アボート後に swapContent() を呼び出そうとしても、何もしません。中止後に AJAX 関数を再度呼び出すにはどうすればよいですか?

グローバル

AJAX

onPopstate