Autor Zpráva
smiesek
Profil
Nedaří se mi prosím zvalidovat následující kod pro toplist, který mám vložený v externím souboru, jehož obsahem je:

<script type="text/javascript">

document.write('<img src="http://toplist.cz/dot.asp?id=0000000&amp;http='+escape(document.referrer)+'&amp;t='+escape(document.title)+'" width="1" height="1" border="0" alt="TOPlist" />');

</script>

výpis chyby dle validátoru je následující:
Line 17, Column 184: document type does not allow element "img" here

…'+escape(document.title)+'" width="1" height="1" border="0" alt="TOPlist" />');


nelíbí se mu znak >

validita se týká stránek uvedených v profilu
Trejpa
Profil
smiesek:
Nevím, k čemu potřebuješ validnost, ale je to lomítkem.

1) Můžeš lomítko na konci značky <img> smazat, v HTML se značka neuzavírá: alt="TOPlist">');
2) Můžeš zrušit funkci lomítka jeho escapováním zpětným lomítkem: alt="TOPlist" \/>');

Na funkci skriptu a stránky nemá vliv původní nevalidní ani upravený kód.
smiesek
Profil
Trejpa: děkuju podívám se na to a vyzkouším.
Jinak se snažím na stránkách minimalizovat chyby, a tato chyba se mi tam stále zobrazuje, tak asi to potřebuju pouze k tomu, aby se mi nezobrazovala

edit: zkoušela jsem tedy obě možnosti, ale bohužel se následně vypisuje zase chyba upraveného znaku
Trejpa
Profil
smiesek:
Aha, hraješ na XHTML, které prohlížečům posíláš jako vadné HTML.

Přistoupím na hru. V XHTML se obsah skriptů dává do CDATA, aby nebyl považován za část dokumentu:
<script>
<![CDATA[
/* obsah skriptu */
]]>
</script>

Prohlížečům je to jedno, zpracují tvé rozbité HTML (pardon, validní XHTML) stejně, jako každý jiný dokument s chybami v kódu.
smiesek
Profil
Trejpa: hm takže to tedy nemám řešit, jestli jsem správně pochopila a nechat tak.
Já jinak na nic nehraju, jen jsem chtěla odladit chybu no
Trejpa
Profil
smiesek:
Validita návštěvníky ani vyhledávače nezajímá, nemá cenu se s ní zdržovat. Pokud tedy neodhalí kritické chyby, na které přijdeš i tak, že se stránka zobrazuje jinak, než byl záměr.


Aby prohlížeče braly XHTML jako XHTML, a ne za rozbité HTML, tak se soubor musí posílat jako jeden z podporovaných XML typů pomocí změny MIME souboru. Jenže ne všechny staré prohlížeče XML umí zobrazit a ve všech hrozí nezobrazení celé stránky v případě výskytu jediné chyby. Žádné výhody za tyto komplikace XHTML nepřináší, proto se už také nevyvíjí.

Takže si vyber: použitelnost / validnost / XHTML, libovolné dvě možnosti vyloučí zbývající třetí. Nápověda: návštěvníky zajímá jen ta první.



Ještě jednou, neřeš to.
Joker
Profil
smiesek:
Hlášky z validátoru neberte automaticky jako chyby, ale jako informativní. Asi jako kontrolky v autě: Že nějaká svítí ještě neznamená, že je nutné něco opravovat.

Je nutné vědět, co znamenají a na co upozorňují. Spíš než „Jak tu hlášku odstranit?“ je potřeba se ptát „Co ta hláška znamená?“; Pokud hlášce z validátoru nerozumíte, ale kód v hlavních prohlížečích normálně funguje, bývá bezpečnější nechat kód, jak je.
smiesek
Profil
dobře, děkuju za "vymluvení" mé snahy o odstranění chyby

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0