Se si desidera semplicemente cambiare l'hash dopo caricamento della pagina:
window.onload = function (event) {
window.location.hash = "#my-new-hash";
};
Se si vuole navigare verso l'URL con il nuovo hash:
window.location.href = "http://website.com/#my-new-hash";
Se si desidera ascoltare per modifiche nell'hash dell'URL; puoi considerare di utilizzare l'evento DOM window.onhashchange.
window.onhashchange = function() {
if (location.hash === "#expected-hash") {
doSomething();
}
};
Ma non è ancora supportato da tutti i principali browser.
Ora ha un ampio browser support. È inoltre possibile verificare le modifiche eseguendo il polling dello window.location.hash
a intervalli di piccole dimensioni, ma anche questo non è molto efficiente.
Per una soluzione di cross-browser ; Vorrei suggerire Ben Alman's jQuery hashchange plugin che combina questi metodi e alcuni altri con un meccanismo di fallback.
EDIT: Dopo l'aggiornamento domanda, capisco che desidera che la pagina per scorrere fino a un segnalibro ?:
È possibile utilizzare Element.scrollTop
o il metodo $.scrollTop()
di jQuery.
$(document).ready(function (event) {
var yOffset = $("#my-element").offset().top;
$("body").scrollTop(yOffset);
});
Vedere documentazione here.
fonte
2013-01-15 23:02:36
Ho finito per utilizzare il concatenamento di una funzione completa con yepnope. jQuery stava ottenendo il valore dell'offset di hasthtag prima che il contenuto venisse popolato. Ho appena dato un calcio in un mix del codice con cui voi ragazzi avete aiutato a completare. – brunam