web-dev-qa-db-ja.com

jQueryでURLの変更を検出する方法

JQueryはURLの変更をどのように検出できますか?

例:ユーザーがページに移動した場合site.com/faq/何も表示されませんが、彼がsite.com/faq/#open jqueryはそれを検出し、何かをします。

28
skywind

これを試して

$(window).on('hashchange', function(e){
 // Your Code goes here
});

私のために働く

25
user3354817

hashchangeイベントを使用できます。

function hashchanged(){
  var hash = location.hash.replace( /^#/, '' );
 //your code
}

window.addEventListener("hashchange", hashchanged, false);

または jquery hashchange plugin を統合します

$(function(){

  // Bind the event.
  $(window).hashchange(hashchanged);

  // Trigger the event (useful on page load).
  hashchanged();

});

function hashchanged(){
 var hash = location.hash.replace( /^#/, '' );
 //your code
}
22
UnLoCo

単にwindow.location.hashページ読み込み時:

$(document).ready(function() {
    if(window.location.hash === "open")
    {
        //Show something
    }
});

または、ウィンドウのhashchangeイベントにバインドします。

$(document).ready(function() {
    $(window).hashchange(hashchanged);
});

function hashchanged()
{
    //Show something
}
8
James Hill

これを試して:

if (window.location.hash) {
    // Fragment exists, do something with it
    var fragment = window.location.hash;
}

参考のために、#で指定されたURLの部分は「フラグメント」と呼ばれます

2
Rory McCrossan

site.com/faq/#openのURLがあれば、次のことができます

var hash = window.location.hash

hash = 'open'を取得するには

1