Помогите с валидацией кода

Тема в разделе "Другие языки", создана пользователем WerewolfGSM, 7 окт 2010.

Модераторы: Цукер
  1. WerewolfGSM

    WerewolfGSM

    Регистр.:
    4 дек 2006
    Сообщения:
    257
    Симпатии:
    11
    Добрый день.
    Валидатор w3.org ругается на следующий javascript код в теле страницы:
    PHP:
    var show = function() {
            
    images[currentIndex].fade('out');
            
    images[currentIndex currentIndex images.length currentIndex+0].fade('in');
        };
    Это функция слайдшоу галереи.
    Вот что говорит
    PHP:
    Line 96Column 38character "<" is the first character of a delimiter but occurred as data
            images
    [currentIndex currentIndex images.length currentIndex+0].
    This message may appear in several cases
    :
        * 
    You tried to include the "<" character in your pageyou should escape it as "&lt;"
        
    You used an unescaped ampersand "&"this may be valid in some contextsbut it is recommended to use "&amp;"which is always safe.
        * 
    Another possibility is that you forgot to close quotes in a previous tag.
    Предлагает мне экранировать знак "<" в коде. После экранирования код естественно работать не будет. Как обмануть валидатор?
    Спасибо.
     
  2. swer

    swer

    Регистр.:
    15 июн 2008
    Сообщения:
    305
    Симпатии:
    38
    Да на многое чего он ругается,не обращайте внимание,если все норм работает.
     
  3. WerewolfGSM

    WerewolfGSM

    Регистр.:
    4 дек 2006
    Сообщения:
    257
    Симпатии:
    11
    Оно то работает, но есть мнение, что 100% валидные страницы лучше ранжируются поисковиками. Во всяком случае гугль в каком-то неофициальном документе об этом упоминал.
     
  4. diavolic

    diavolic

    Регистр.:
    17 мар 2010
    Сообщения:
    522
    Симпатии:
    102
    HTML:
    
    var show = function() { 
            images[currentIndex].fade('out'); 
            images[currentIndex = currentIndex < (images.length - 1) ? currentIndex+1 : 0].fade('in'); 
        };  
    
     
  5. WerewolfGSM

    WerewolfGSM

    Регистр.:
    4 дек 2006
    Сообщения:
    257
    Симпатии:
    11
    К сожалению предложенное решение не помогло.
    Зато помогло другое. Я спрятал проблемный код в html комментарии
    и валидатор сьел и не подавился.
    Спасибо всем откликнувшимся.
     
  6. bork75

    bork75 The Team

    Регистр.:
    21 июн 2008
    Сообщения:
    1.451
    Симпатии:
    677
    Тоже сегодня столкнулся, только у меня не в скрипте, а в обработчике событий.
    Воспользовался советом валидатора
    И вписал вместо первого открывающегося тега "<" - "&amp;"
    И скрипт работает и валидацию прошёл.)
     
  7. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    валидатор w3.org проверяет только веб документы html, xhtml, smil..., поэтому будут ошибки на яваскриптах, яваскрипт это не html. Решение прятать яваскрипты в коментарии как сказал WerewolfGSM , или выносить все яваскрипты в отдельный файл и его подключать к странице
    HTML:
    
    <script type="text/javascript" src="super_javascript.js"></script>
    
     
  8. WerewolfGSM

    WerewolfGSM

    Регистр.:
    4 дек 2006
    Сообщения:
    257
    Симпатии:
    11
    Дело в том, что
    это тоже яваскрипт.
    В качестве альтернативы можно былобы сделать так: скрипт "overlib('<img src=\'/templates/images/f…" поместить в какую нибудь функцию например overlib2, а уже эту функцию взять в коментарии.
    Но к сожалению это не всегда удобно, особенно, когда скрипты формируются динамически из ПХП
     
  9. enzo74

    enzo74 Постоялец

    Регистр.:
    18 май 2008
    Сообщения:
    94
    Симпатии:
    14
    Нету такого. Гугл не ранжирует в зависимости от валидности.
     
  10. Kub

    Kub

    Регистр.:
    5 июн 2009
    Сообщения:
    628
    Симпатии:
    485
    А жаль, это бы подталкивало к более грамотному написанию кода.