使用URL片段确定运行哪个jquery函数

时间:2013-11-11 23:10:37

标签: javascript jquery html5 fragment

我想链接到(domain.com/page#loadThickBox1)这样的页面,并让它运行jquery函数,默认情况下会加载一个thickbox。我需要运行什么代码才能完成此任务?

例如,这些可能是一些链接:

domain.com/page#loadThickBox1

domain.com/page#loadThickBox2

domain.com/page#loadThickBox3

不喜欢这样:

domain.com/page/loadThickBox1

domain.com/page/loadThickBox2

domain.com/page/loadThickBox3

3 个答案:

答案 0 :(得分:1)

使用location.hash

$(function() {
    switch( location.hash.replace('#','') ){
    case 'loadThickBox1':
        //do something!
        loadThickBox1();
        break;
    case 'loadThickBox2':
        //do something!
        loadThickBox2();
        break;
    case 'loadThickBox3':
        //do something!
        loadThickBox3();
        break;
    }
});

答案 1 :(得分:0)

location.href.split('#')[1]

这将为你提供#之后的单词。在给定此值的情况下加载相应的框。

答案 2 :(得分:0)

您可以收听 hashchange 事件,解析哈希并相应地运行您的函数。

DEMO

function handleHash(hash) {
    var hash = hash.replace('#', '');

    if (!hash) return;

    console.log('Loading thick box ' + hash.slice(-1));
}

window.addEventListener('hashchange', function () {
    handleHash(location.hash);
});

//handle initial hash when page loads
handleHash(location.hash);