<script type="text/javascript"> function menin (nr, action, state) { var nr = nr; var action = action; var state = state; var menin = document.getElementById('menin_' + nr); if ((action == 'msov' && state == 'on') || (action == 'msou' && state == 'on')) { menin.style.display = 'block'; } else if (action == 'msov' && state == 'off') { menin.style.display = 'block'; } else if (action == 'msou' && state == 'off') { menin.style.display = 'none'; } } </script>
Tak wygląda funkcja z którą mam problem w walidatorze W3C, z funkcją jest wszystko ok ale walidator non stop wyrzuca błąd:
"Line 184, Column 23: character "&" is the first character of a delimiter but occurred as data.
if ((action == 'msov' && state == 'on') || (action == 'msou' && state == 'on')…
This message may appear in several cases:
* You tried to include the "<" character in your page: you should escape it as "<"
* You used an unescaped ampersand "&": this may be valid in some contexts, but it is recommended to use "&", which is always safe.
* Another possibility is that you forgot to close quotes in a previous tag. "
DOCTYPE: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
zarówno strict jak i frameset zwraca to samo...
Wszystko by było ok, gdyby funkcja js była wczytywana z pliku .js a nie umieszczona bezpośrednio na stronie, ale tak musi pozostać, ponieważ stronka zbudowana jest niejako modułowo i pliki z funkcjami js do poszczególnych modułów znajdują się w katalogu, który nie jest dostępny dla użytkownika z przeglądarki. Plik ma postać nazwa.js.php i jest zwyczajnie includowany na stronie, przez co jest wyświetlany.
Gdy zamienię && na && - ponieważ to js - funkcja przestaje działać:/
Może ktoś wie jak się uporać z tym błędem podczas walidacji, ponieważ jest to jedyny błąd jaki W3C walidator mi zwraca i mi zwyczajnie tego szkoda:P
Proszę o wskazówki - pozdrawiam:)