5

我有一个函数可以更改 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();

我知道可能有更好的方法来完成我提到的所有事情,但这是我要做的唯一网站,我不在乎脚本最终有多混乱,只要它作品。

4

1 回答 1

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()

于 2010-11-18T12:10:02.560 回答