私のhtmlが
<a href="#one">One</a>
<a href="#two">Two</a>
Jsは
$(window).on("hashchange"){
alert(document.location.hash);
}
ハッシュ変更前のハッシュ値を取得したいのですが、可能ですか?
私のhtmlが
<a href="#one">One</a>
<a href="#two">Two</a>
Jsは
$(window).on("hashchange"){
alert(document.location.hash);
}
ハッシュ変更前のハッシュ値を取得したいのですが、可能ですか?
それを使う
$(window).on("hashchange", function(e){
console.log(e.originalEvent.oldURL)
console.log(e.originalEvent.newURL)
});
デモ: http: //jsbin.com/ulumil/
たとえば、最後のハッシュを追跡する必要があります。
var currentHash = function() {
return location.hash.replace(/^#/, '')
}
var last_hash
var hash = currentHash()
$(window).bind('hashchange', function(event){
last_hash = hash
hash = currentHash()
console.log('hash changed from ' + last_hash + ' to ' + hash)
});
実際、Amit が提供するソリューションは機能しますが、jquery ライブラリとクロスプラットフォームでも機能します。
これは、コア JavaScript とクロスブラウザも使用した、より単純化されたソリューションです。(最新バージョンのIE/FF/Chrome/Safariで確認)
window.onhashchange = function(e){
console.log(e);
var oldURL = e.oldURL;
var newURL = e.newURL;
console.log("old url = " + oldURL);
console.log("new url = " + newURL);
var oldHash = oldURL.split("#")[1];
var newHash = newURL.split("#")[1];
console.log(oldHash);
console.log(newHash);
};