如何使用javascript检测内联链接?

时间:2011-12-31 21:28:53

标签: javascript jquery html

说我有一个网页index.html。假设客户端转到index.html#section2。这应该使客户端访问页面的一部分,其中一个块级元素的名称属性为section2

如何在javascript中检测此内联链接?具体来说,如果用户转到index.html#section2,我想在javascript中运行某个函数。

我也愿意使用jQuery。谢谢!

2 个答案:

答案 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需要处理这种情况,那么插件的开销可能是必要的 - 正如他在回答中指出的那样......