如果您只想在页面加载后更改哈希:
window.onload = function (event) {
window.location.hash = "#my-new-hash";
};
如果您想导航到带有新哈希的 URL:
window.location.href = "http://website.com/#my-new-hash";
如果你想监听 URL 哈希的变化;您可以考虑使用window.onhashchange DOM 事件。
window.onhashchange = function () {
if (location.hash === "#expected-hash") {
doSomething();
}
};
但还不是每个主要浏览器都支持它。它现在拥有广泛的浏览器支持。您还可以通过小间隔轮询来检查更改window.location.hash
,但这也不是很有效。
对于跨浏览器解决方案;我建议Ben Alman 的jQuery hashchange 插件将这些方法和其他一些方法与回退机制结合起来。
编辑:您的问题更新后,我知道您希望页面滚动到书签?:
您可以使用Element.scrollTop
jQuery 或 jQuery 的$.scrollTop()
方法。
$(document).ready(function (event) {
var yOffset = $("#my-element").offset().top;
$("body").scrollTop(yOffset);
});
请参阅此处的文档。