页面选择脚本不起作用

Page selection script dont work

本文关键字:不起作用 脚本 选择      更新时间:2023-09-26

我的网站不想显示这个脚本。当我把它放在索引页上时,它会显示出来,但当我把他放在其他页面上时,什么都没发生

<div id="pages"></div>  
<script>  
    a = location.href;  
    b = a.split('-');  
    c = b.length;  
    d = eval(c - 1);  
    e = b[d];  
    f = a.split('-' + e)[0];  
  
    $('#pages').html('<a id="b" href="' + f + '-' + eval(e - 1) + '">Previous' + 
        '</a><span id="i"> | </span><a id="a" href="' + f + '-' + eval(e * 1 + 1) + '">Next</a>');  
 
    $.ajax({  
        type: 'GET',  
        url: f + '-' + eval(e * 1 + 1),  
        error: function(){
            $('#a, #i').hide();
        }  
    });  
    $.ajax({  
        type: 'GET',  
        url: f + '-' + eval(e - 1),  
        error: function(){
            $('#b, #i').hide();
        }  
    });  
</script>

有人能帮忙吗?

我认为代码中最重要的错误是读起来一团糟,写起来也一团糟。以下是一些解决您问题的建议:

  • 删除所有eval黑客
  • 命名你的变量,使它们有意义
  • 行数越多并不意味着更好,确保每一条指令都是必要的
  • 把你的脚本放在标题中,这样更容易阅读
  • 正如Subhash所指出的,确保在元素存在之前,您不会访问它们

这应该能自己解决你的问题。如果没有,请用更人性化的代码更新您的问题,我很乐意对此进行调查:-)

"调试的难度是最初编写代码的两倍。因此,如果你尽可能聪明地编写代码,那么从定义上讲,你还不够聪明,无法调试它。"–Brian Kernighan

好吧,为了首先解决让链接显示的问题,我的第一种方法是验证脚本不起作用的页面是否包含必要的元素(在本例中,是一个id标记为"pages"的元素)。

然后,我会让脚本只在文档的其余部分完成加载后运行。请参阅此了解更多详细信息。

如果你仍然遇到问题,我接下来要做的就是在Chrome或Firefox中打开它,并开始使用DOM检查器和Javascript调试器来"查看"代码运行时到底发生了什么。它足够短,不会太乏味,在我看来这是最好的学习方式之一。

除此之外,我真的不能提供太多。你没有给我足够的信息,至少我不知道你可能有什么问题。如果你能自己缩小问题的范围,我们也许能更好地帮助你。