2016-12-06 7 views
2

一部のサイトでは、「1ページシステム」が構築されています。JS/Jqueryを使用したURLの変更(ハッシュだけではありません)を検出します。

このようなシステムでは、リンクをクリックしてもユーザーは別のページに移動することはありませんが、AjaxでページをリロードしてURLを変更するだけです。

私は$(window).on("hashchange")について多くの回答を見ましたが、私はこのトリックを知っていますが、私は全URL変更(それだけではなく)を検出する必要があります。

URL全体の変化を検出する方法はありますか?

+1

ハッシュ以外のURLを変更してもページがリロードされませんか?したがって、SPAではありませんか? – Taplar

+0

代替オプションとして[$ .unload](https://api.jquery.com/unload/)を使用することを検討すべきだと思います。 –

+0

$ .unloadは実際にページが "アンロード"されないため発生しません - のみURLが変化しています。たとえば、https://www.netflix.com/title/70178217の再生ボタンをクリックすると、ページがリロードされません。URLがhttps://www.netflix.com/watch/80049213に変更されます。 –

答えて

1

URLの変更全体を検出する方法が見つかりませんでしたが、この質問は私にいくつかの新しいことを教えてくれました。

  1. あなたは例「ページのリロードエミュレーション」というリンクをjQuery .on()ユーザーのクリックで検出し、「ページのリロードイベント」などのイベントを使用することができます。
  2. 今、私はhtml5の関数window.history.pushState()がページをリロードせずにURLを変更できることを知っています。

希望、誰かに役立つでしょう。

関連する問題