Javascript не распознает функцию - PullRequest
4 голосов
/ 07 марта 2011

Я новичок в программировании на 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) {;
        }
    }
}

Дляцикл запускается один раз и выделяет соответствующий текст, после которого он выходит, и страница становится полностью белой.В консоли ошибки появляется следующая ошибка:

Ошибка: getCookie не определен

но я предполагаю, что это не getCookie. Сценарий просто отказывается распознавать какую-либо функцию или переменную после указанного выше события. Я понятия не имею, что может быть причиной того, что скрипт ведет себя таким образом. Я занимаюсь разработкой в ​​firefox.

Пожалуйста, дайте мне подсказку! Дайте мне знать, если мне нужно вставить больше кода или дать больше информации.

Спасибо,

Ответы [ 4 ]

5 голосов
/ 07 марта 2011

getCookie() не является функцией, предоставляемой браузером. Этот фрагмент, вероятно, ожидает, что где-то в вашем коде будет объявлена ​​функция getCookie(). document.cookie - это то, что вы использовали бы для получения строки cookie из браузера, но вы должны проанализировать и разделить ее, чтобы найти нужные вам данные. Это то, что написанная вами функция getCookie сделает для вас.

3 голосов
/ 07 марта 2011

Ваше описание (страница очищается после 1-го цикла) звучит так, как будто вы используете где-то document.write().

А вы?(может быть в highlightText ())

Если да: вы не можете использовать write () после загрузки документа, write () перезапишет все содержимое, также js, поэтому все функции, определенные где-то, несуществует больше.

1 голос
/ 07 марта 2011

Если вы помечаете jquery, я рекомендую вам сделать следующее:

<script>
$(document).ready(function() {
   window.addEventListener("load", highlightSummarySentences , false); });
</script>
0 голосов
/ 28 октября 2015

Добавьте эту функцию 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 "";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...