Javascript无法识别功能

时间:2011-03-07 06:40:28

标签: javascript jquery firefox dom

我是Javascript编程的新手,这个人已经清楚地'干净'了我:( ........

以下代码段通过搜索和修改相应的文本节点来突出显示某些文本。文本节点搜索是使用Jquery功能完成的:

  

window.addEventListener(“load”,highlightSummarySentences,false);

function highlightSummarySentences() {
    var docName = thisPage;
    var numSentences = getCookie(docName+"Num");
    var linkSentenceNum = getCookie(docName + 'LinkingSentence');
    for(var i=0; i<numSentences; i++) {
        var matchMe = getCookie(docName+i);
        try {
            if (matchMe && i==(linkSentenceNum)) {
                highlightText(matchMe, clickedSentenceColour);
            }
            else if(matchMe){
                highlightText(matchMe, summarySentenceColour);
            }
        } catch (e) {;
        }
    }
}

for循环运行一次并突出显示相应的文本,然后退出并且页面变为完全白色。错误控制台中出现以下错误:

  

错误:未定义getCookie

但我猜它不是getCookie。在上述事件之后,脚本只是拒绝识别任何函数或变量。我不知道可能导致脚本以这种方式运行的原因。我在firefox中开发。

请给我一个提示!如果我应该粘贴更多提供更多信息的代码,请告诉我。

谢谢,

4 个答案:

答案 0 :(得分:5)

getCookie()不是浏览器提供的功能。此代码段可能需要在代码中的某处声明getCookie()函数。您将使用document.cookie从浏览器获取cookie字符串,但您必须解析并拆分它以查找所需的数据。这就是你编写的getCookie函数会为你做的事情。

答案 1 :(得分:3)

您的说明(第一次循环后页面清除)听起来就像您使用某处document.write()

你呢? (可以在highlightText())

如果是:在加载文档后不能使用write(),write()也会覆盖所有内容,js,所以在某处定义的所有函数都不再存在。

答案 2 :(得分:1)

如果您要标记jquery,我建议您执行以下操作:

<script>
$(document).ready(function() {
   window.addEventListener("load", highlightSummarySentences , false); });
</script>

答案 3 :(得分:0)

在页面中添加此getCookie()函数

function getCookie(cname) {
     var name = cname + "=";
     var ca = document.cookie.split(';');
     for(var i=0; i<ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1);
        if(c.indexOf(name) == 0)
           return c.substring(name.length,c.length);
     }
     return "";
}