問題タブ [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 投票する
1 に答える
625 参照

javascript - History.pushState() (または .replaceState()) を呼び出すと「popstate」イベントがトリガーされるのはなぜですか?

AJAX 呼び出しに応じて URL を変更しています。

また、JS 内に popstate イベントを記述しています。

pushState が呼び出されるとすぐに、popstate がトリガーされます。これを防ぐ方法は?

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

jquery - MVC/Ajax:「JavaScript」で特定のページに移動したときに、セッションを放棄したり、アプリケーションからログアウトしたりする方法は?

MVC アプリケーションがあり、ブラウザBackボタンをクリックすると、ブラウザの履歴をナビゲートできます。

リンクを構築するための次の MVC コードがあります。

そして、これはJavaScript履歴をさかのぼって処理するためのものです:

loginただし、ページに戻るときにForwardボタンをクリックすると、認証なしでアプリケーションに戻ることができます。

ブラウザの履歴がページに戻ったときにユーザーがサインアウトし、セッションが破棄されるようにするにはどうすればよいLoginですか?

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

jquery - Jquery SPA の実装について

JQuery を使用して SPA Web サイトを作成しようとしています。使い方はわかったのですが、いくつか質問がありますhistory.pushState$(window).on('popstate')現在、popstate イベントとナビゲーション リンクを処理する router.js ファイルがあります。リンクをカスタム属性 (data-navId="templates/page/page.html") または href に配置し、 $(e).preventDefault(); . ユーザーがリンクをクリックすると$('.page-content').load('url', function() {})history.pushstate実行されます。

1) これらの関数を含む router.js ファイルをすべてのテンプレートに含める必要がありますか? これらの関数のみを含む 1 つの html が必要です。テンプレートには、HTML とそれに対応するスクリプトのみを含める必要があります。私はなんとかそれを達成しましたが、ユーザーがページを更新すると、テンプレートはスタイリングなどなしで表示されます。答えはハッシュを使用していますか?または、ユーザーがブラウザを閉じて [前のページを復元] オプションを有効にすると、テンプレートは HTML のみで読み込まれます。

popstate以前は、 andのみを使用してハッシュなしで SPA ページを開発しましhistory.pushStateたが、各ファイルにすべての html を含めてから$('.page-content').load(url + ' .page-content > *', function() {});、更新のバグを回避するために呼び出す必要がありました。

また、Facebook がpopstate最新のブラウザーとhashchange古いブラウザーに使用することは、おそらく Modernizr.js またはカスタム ライブラリを含めることで知っています。しかし、すべてのテンプレートにルーターを含めずに、ルーターはどのように機能するのでしょうか?

前もって感謝します。