如果函数与window.location.hash有帮助

时间:2010-11-18 10:26:20

标签: javascript window.location

我有一个更改url中哈希的函数,并从我的主页插入/删除div。我这样做是因为我可以有一个页面,你可以在没有重新加载的情况下进行操作,但同时我希望人们能够为某个部分添加书签并稍后转到它而无需再次浏览该页面。

当我尝试调用我的hash()函数,它关闭所有div并根据哈希打开特定的div时,它不起作用。我可能在if语句中没有正确的东西,因为当我在alert()函数中放置hash()时,它会像它应该的那样弹出。

function hash(){
    if ( window.location.hash == "dcontact" ) { 
        removedivs();
        InsertContent('dcontact');
    }
    if ( window.location.hash == "dhome" ) {
       removedivs();
       InsertContent('dhome');
    }
}
hash();

我知道可能有更好的方法来完成我提到的所有事情,但这是我将要制作的唯一网站,而且我不会在意这个剧本到底有多乱,因为只要它有效。

1 个答案:

答案 0 :(得分:7)

它不起作用的原因是实际的哈希(在美国我认为你称之为英镑)符号 - #在window.location.hash的开头

从内存IE中不会将哈希符号放在上面,所以这样做:

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

    if (hash == "dcontact"){removedivs(); InsertContent('dcontact');}
    if (hash == "dhome"){removedivs(); InsertContent('dhome');}  
}

你也可以考虑只调用InsertContent(hash)而不是为你拥有的每个不同的链接做一个if()