说我有一个网页index.html
。假设客户端转到index.html#section2
。这应该使客户端访问页面的一部分,其中一个块级元素的名称属性为section2
。
如何在javascript中检测此内联链接?具体来说,如果用户转到index.html#section2
,我想在javascript中运行某个函数。
我也愿意使用jQuery。谢谢!
答案 0 :(得分:2)
在这个jQuery插件中使用jQuery http://benalman.com/projects/jquery-hashchange-plugin/
然后你可以这样做:
$(window).bind( 'hashchange', function( event ) {
if(window.location.hash === "#section2"){
// What you want to do
}
})
或者,如果您不想使用jQuery,只需使用onclick事件。
<a href="#section2" onclick="changed()"></a>
JS:
function changed(){
setTimeout(function(){
if(window.location.hash === "#section2"){
// What you want to do
}
})
}
window.onload = changed; // In case user starts on #section2
答案 1 :(得分:1)
在switch
属性上执行window.location.hash
。
switch(window.location.hash) {
case '#section1':
foo();
case '#section2':
bar();
}
注意 - 所有主流浏览器都支持hash
属性。
修改 -
@IvanCastellanos 对于新的hashchange
事件以及在低级浏览器中缺乏支持是正确的。如果OP需要处理这种情况,那么插件的开销可能是必要的 - 正如他在回答中指出的那样......