Autor | Zpráva | ||
---|---|---|---|
Nich Profil |
#1 · Zasláno: 2. 5. 2011, 23:41:05
Zdravím, mám problém s validací skriptu, který když je v <head> tak funguje v pohodě, ale validací neprojde kvůli '<' znaku v jedné podmínce, proto potřebuji dát skript do externího souboru. S tím mám ale potíž:
script: var show = 1; //Počet obrázků var maxi = <?php echo $_SESSION['max'] ?>; function zpet() { show = show - 1; if(show <= 0) {show = maxi;} document.getElementById('show_img').src='/images/show_'+show+'.jpg'; zmena_textu(); } Tohle samozřejmě v externím souboru nefunguje kvůli příkazu echo... nejde nějak získat hodnotu z sessionu v externím skriptu? |
||
Chamurappi Profil |
#2 · Zasláno: 2. 5. 2011, 23:46:30
Reaguji na Nicha:
„ale validací neprojde kvůli '<' znaku v jedné podmínce“ Jakou validací? Čeho? V HTML to menšítko být smí, v X(HT)ML způsobí fatální chybu (=> totální nefunkčnost stránky). „proto potřebuji dát skript do externího souboru“ I pokud přistoupíme na předpoklad, že existuje vážný důvod, proč nemít v kódu interního skriptu menšítko, tak nepotřebuješ. |
||
Joker Profil |
#3 · Zasláno: 2. 5. 2011, 23:54:54
Nich:
„funguje v pohodě, ale validací neprojde“ Tak jestli to funguje a validátor si stěžuje na něco co ani nemá validovat, kde je problém? Při zpracování XHTML stránky jako XML by to menšítko problém byl, viz Chamurappi. Dá se to řešit obalením skriptu do bloku CDATA: <script type="text/javascript"> //<![CDATA[ (kód) //]]> </script> |
||
Chamurappi Profil |
#4 · Zasláno: 3. 5. 2011, 00:11:27
Reaguji na Jokera:
Nebo entitou < .
Ty JS komentáře tam máš zbytečně :-) |
||
Nich Profil |
#5 · Zasláno: 3. 5. 2011, 01:19:41 · Upravil/a: Nich
CDATA už jsem zkusil, ale když ho takhle zavřu, tak to přestane úplně fungovat.
Tím fungovat myslím, že pokud script (funkci) spustím takhle: <input type="submit" value="" name='zpet' id='dolevaa' class='sipka' alt="" onclick="zpet()" /> tak se při použití CDATA nic nestane... bez něj to funguje. EDIT: validuju na XHTML strcit 1.0 |
||
_es Profil |
#6 · Zasláno: 3. 5. 2011, 07:38:16
|
||
Nich Profil |
#7 · Zasláno: 3. 5. 2011, 08:54:56
_es:
takže když mám celej web napsanej v XHTML, tak budu ověřovat kód ve validátoru jako by byl HTML? Trochu na hlavu ne? :D Já chci validní stránku v XHTML a při tom použít ten script/funkci :-) ... abysme si rozuměli. |
||
_es Profil |
#8 · Zasláno: 3. 5. 2011, 09:05:09
Nich:
„takže když mám celej web napsanej v XHTML“ Neverím, ukáž, prehliadačom (asi) tvrdíš, že to je HTML, tak by si mal logicky overovať validitu pre HTML. |
||
Nich Profil |
#9 · Zasláno: 3. 5. 2011, 10:28:56 · Upravil/a: Nich
Asi ti nějak nerozumím co se mi snažíš říct...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> Doctype: XHTML 1.0 Strict character "<" is the first character of a delimiter but occurred as data if(show <= 0) {show = maxi;} validuju XHTML |
||
_es Profil |
#10 · Zasláno: 3. 5. 2011, 10:34:04
Nich:
O tom, či prehliadač vezme súbor ako HTML alebo XHTML nerozhoduje <!doctype>.
|
||
Nich Profil |
#11 · Zasláno: 3. 5. 2011, 11:03:22
Ale proč tu řešíme pořád dokola tohle? Když to zvaliduju pod HTML tak je tam moc errorů a warningů protože je web dělanej na XHTML
Mě zajímalo jak úspěšně zvalidovat ten script na XHTML překladu, tak aby zároveň ten script fungoval. Věc kterou nechápu, je že když to zakotvím do CDATA, že to přestane fungovat. |
||
Joker Profil |
#12 · Zasláno: 3. 5. 2011, 11:09:20 · Upravil/a: Joker
Nich:
„mám celej web napsanej v XHTML“ A zpracovává se někdy jako XML? Pozná se to celkem snadno, protože zpracování toho dokumentu jako XML skončí na té konstrukci show<=0 skončí chybovou hláškou o neplatném znaku „=“ (pokud neskončí chybovou hláškou už dříve).
Jestli se to zpracovává vždycky jako HTML, je zbytečné to řešit, a s ohledem na: „když ho takhle zavřu, tak to přestane úplně fungovat“ je to vcelku zbytečné úsilí a zanášení potenciálních chyb. edit: „Věc kterou nechápu, je že když to zakotvím do CDATA, že to přestane fungovat.“ A jak vypadá ta dotyčná značka <script>? |
||
Chamurappi Profil |
#13 · Zasláno: 3. 5. 2011, 11:19:27
Reaguji na Nicha:
„takže když mám celej web napsanej v XHTML, tak budu ověřovat kód ve validátoru jako by byl HTML?“ Kdyby byl opravdu XHTML (což určuje MIME typ v HTTP hlavičce), tak by to menšítko způsobilo, že nebude fungovat v žádném prohlížeči. „že když to zakotvím do CDATA, že to přestane fungovat“ Protože používáš HTML a tam CDATA nedává prohlížeči smysl. Deklarace <!doctype> nerozhoduje.
„protože je web dělanej na XHTML“ Není, je jen částečně optimalizovaný pro vadný validátor. Je otázka, zda je víc na hlavu opravovat HTML kód podle pravidel HTML, která (víceméně) používají prohlížeče, nebo zda opravovat HTML podle pravidel XHTML, která navzdory pokynům standardizátorů používá jen W3C validátor. |
||
Nich Profil |
#14 · Zasláno: 3. 5. 2011, 11:50:34
MINE XHTML asi fakt nebude... jak to ale teda vyřešit? Změnit doctype na HTML 4.01 strict a všechny tagy jako např. <img /> přepisovat jak jantar? :D
Chamurappi, Joker: dík za objasnění CDATA |
||
Joker Profil |
#15 · Zasláno: 3. 5. 2011, 11:56:24
Nich:
Já bych doporučoval to nechat tak jak to funguje s tím, že validátor si bude prostě stěžovat na menšítko. Jinak teda ten blok CDATA by šel vložit do HTML komentáře: <script type="text/javascript"> <!--<![CDATA[ (kód) //]]>--> </script> |
||
Nich Profil |
#16 · Zasláno: 3. 5. 2011, 12:05:58
Tak jo díky všem za pomoc
|
||
Chamurappi Profil |
#17 · Zasláno: 3. 5. 2011, 12:57:49
Reaguji na Jokera:
„Jinak teda ten blok CDATA by šel vložit do HTML komentáře“ + dát bacha, aby nikdy nebyl celý skript v jednom řádku, protože první řádek skriptu se celý ignoruje, pokud začíná na <!-- . S tím si jde užít také hodně srandy.
Reaguji na Nicha: „Změnit doctype na HTML 4.01 strict a všechny tagy jako např. <img /> přepisovat jak jantar? :D“ Vykašlat se na validátor. Nebo validovat kód jako HTML 5, kde je toho mnohem víc dovoleno. Prohlížeče stejně nerozlišují verze HTML a ze všech specifikovaných verzí mají nejblíž k návrhům HTML 5. Mimochodem ten skript jde docela snadno upravit tak, aby menšítko neobsahoval, protože podmínka A < B jde zapsat i jako B > A , ale opravdu není důvod hnát se za „XHTML 1.0 Strict Valid!“.
|
||
Nich Profil |
#18 · Zasláno: 3. 5. 2011, 13:15:17
Chamurappi:
ono je to už jedno zmenil jsem doctype a validuju pro HTML 4.01 a už mám všechno validní... takže díkas :-) |
||
Časová prodleva: 13 let
|
0