JQueryはURLの変更をどのように検出できますか?
例:ユーザーがページに移動した場合site.com/faq/
何も表示されませんが、彼がsite.com/faq/#open
jqueryはそれを検出し、何かをします。
これを試して
$(window).on('hashchange', function(e){
// Your Code goes here
});
私のために働く
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
}
単にwindow.location.hash
ページ読み込み時:
$(document).ready(function() {
if(window.location.hash === "open")
{
//Show something
}
});
または、ウィンドウのhashchange
イベントにバインドします。
$(document).ready(function() {
$(window).hashchange(hashchanged);
});
function hashchanged()
{
//Show something
}
これを試して:
if (window.location.hash) {
// Fragment exists, do something with it
var fragment = window.location.hash;
}
参考のために、#
で指定されたURLの部分は「フラグメント」と呼ばれます
site.com/faq/#open
のURLがあれば、次のことができます
var hash = window.location.hash
hash = 'open'
を取得するには