脚本哈希值,丢失一个字母数字字符

时间:2012-09-13 18:57:42

标签: javascript jquery

我必须将所有.html文件重命名为.php,以便我可以使用php gzip压缩。无论如何,交换机打破了我的一个脚本。这是一个加载和动画内容的脚本。它从各种页面中抓取内容并将其加载到容器中。该部分脚本运行正常。

使用.html扩展程序时,脚本会很乐意将正在查看的页面附加到URL,如:www.site.com/#ABOUT

但是现在我已经将.html中的所有内容重命名为.php,总会丢失一封信,例如:www.site.com/#ABOU< ---缺少'T'

或者,www.site.com/#CONTAC< ---缺少'T'

www.site.com/#NEWSLETTE< ---缺少'R'

以下是执行此追加功能的脚本部分:

var hash = window.location.hash.substr(1);
var href = $('#nav li a').each(function(){
    var href = $(this).attr('href');
    if(hash==href.substr(0,href.length-5)){
        var toLoad = hash+'.php #content';  <--- .php (was: .html)
        $('#content').load(toLoad)
    }                                           
});

这是怎么回事?

3 个答案:

答案 0 :(得分:3)

href.substr(0,href.length-5)

由于你从.html切换到.php,你想要

href.substr(0,href.length-4)

.php比.html

短一个字符

答案 1 :(得分:1)

我不会说这是正确的做法,但改变这一点应该有效:

if(hash==href.substr(0,href.length-4)){
    var toLoad = hash+'.php #content';  <--- .php (was: .html)
    $('#content').load(toLoad)
}      

答案 2 :(得分:0)

如果href.substr(0,href.length-5)旨在删除.html,您可能需要将其更改为href.substr(0,href.length-4),以便删除.php