jQuery:当url中有某个哈希时触发一个函数......?

时间:2011-09-29 11:36:57

标签: jquery function pageload

我希望在网页加载网址中的某个哈希值时执行一个函数。

因此,如果我访问www.mypage.com/hello.html#functionplease,则代码将执行。

有人能指出我正确的方向吗?

任何建议表示赞赏!

4 个答案:

答案 0 :(得分:9)

var h = location.hash.substr(1);
if (h == 'functionplease')
    functionplease();

substr(1)删除#in hash。

很多功能?没问题!

switch(location.hash.substr(1)) {
    case 'buy': buy(); break;
    case 'sell': sell(); break;
    case 'other': other(); break;
}

答案 1 :(得分:0)

以下内容应该有效:

<script type="text/javascript">
    //check if hash tag exists in the URL
    if(window.location.hash)
    {
        //set the value as a variable, and remove the #
        var hash_value = window.location.hash.replace('#', '');

        //check value of hash
        if (hash_value == 'functionplease'){
           // execute code
        }  
    }
</script>

希望这有帮助!

答案 2 :(得分:0)

var pathname = window.location.pathname; 
if(pathname.indexOf("#") != -1){
    //call your function
}

答案 3 :(得分:0)

尝试:

<script type="text/javascript">
    window.onload = function () {
        setInterval(pollHash, 100);
    }


    var lasthash = '';
    function pollHash() {
        if (window.location.hash == lasthash) { return; }

        lasthash = window.location.hash;
        console.log('hash is changed! Current hash is: ' + lasthash);

        switch (lasthash) {
            case '???' :
                /* do something */
                break;
            default:
                /* do nothing */
                break;
        }
    }

</script>

请查看:http://ajaxpatterns.org/Unique_URLs#Unique_URL_Sum_Demo