Nasıl penceresinden karma kaldırmak için.sayfa yenileme olmadan JavaScript ile konum?
http://example.com#something
nasıl sayfayı yenilemek için neden olmadan #something
, çıkarın mı var?
Şu çözümü denedim:
window.location.hash = '';
Ancak, bu karma sembolü #
URL kaldırmaz.
CEVAP
Bu sorunun çözümü çok daha ulaşılabilecek günümüzde. HTML5 History API ABD konum çubuğu, geçerli etki alanı içinde herhangi bir URL görüntülemek için işlemek için izin verir.
function removeHash () {
history.pushState("", document.title, window.location.pathname
window.location.search);
}
Çalışan demo: http://jsfiddle.net/AndyE/ycmPt/show/
Bu Chrome 5, Opera 11.50 Safari 4, Firefox 9, çalışırveYANİ 10. Desteklenmeyen tarayıcılar için, her zaman kullanılabilir nerede bunu kullanan incelikle aşağılayıcı bir senaryo yazabilirsin:
function removeHash () {
var scrollV, scrollH, loc = window.location;
if ("pushState" in history)
history.pushState("", document.title, loc.pathname loc.search);
else {
// Prevent scrolling by storing the page's current scroll offset
scrollV = document.body.scrollTop;
scrollH = document.body.scrollLeft;
loc.hash = "";
// Restore the scroll offset, should be flicker free
document.body.scrollTop = scrollV;
document.body.scrollLeft = scrollH;
}
}
Tüm karma sembolü, tarayıcılar-henüz kurtulabilirsiniz.
pushState()
yerine replaceState()
kullanın.
Nasıl sayfayı kaydırmak için neden olm...
nasıl javascript karma anahtar değerin...
Nasıl bir JavaScript nesnesinin bir öz...
Nasıl stil için bir <select> sad...
nasıl JavaScript bir nesne anahtarı ka...