Autor | Zpráva | ||
---|---|---|---|
Marty Profil |
#1 · Zasláno: 20. 1. 2007, 10:21:11
Mám tento kód:
<span onclick="pridej_tag('<p class="po">','</p>');">text</span> který ovšem adekvátně nefunguje kvůli uvozovkám u jména třídy. Jak na to? Jen podotknu, že ty dvojité uvozovky bych v paramteru funkce potřeboval. Díky za pomoc |
||
Dero Profil |
#2 · Zasláno: 20. 1. 2007, 11:25:20 · Upravil/a: Dero
<span onclick="pridej_tag('<p class=\"po\">','</p>');">text</span> |
||
Marty Profil |
#3 · Zasláno: 20. 1. 2007, 11:34:30
Dero díky za hbitou reakci, ale po ozkoušení jsem musel konstatovat, že na stránce se zobrazí znaky navíc (zkrátka to nefunguje).
|
||
Chamurappi Profil |
#4 · Zasláno: 20. 1. 2007, 14:07:45 · Upravil/a: Chamurappi
Reaguji na Martyho:
Vžij se do role parseru. První úroveň je HTML. Začal atribut, jmenuje se onclick, následuje rovnítko a hodnota, která je ohraničená uvozovkami. Co je uvnitř a čím se to zpracovává, to je vedlejší. Z pohledu značkovacího jazyka je to hodnota atributu, neznámé cosi obalené uvozovkami. V hodnotě mohou být užity HTML entity, překládají se, takže & dorazí k javascriptovému interpretu jako ampersand a " jako uvozovka. Na úrovni HTML je tedy řešením: <span onclick="pridej_tag('<p class="po">','</p>');">text</span>Jiná možnost: escapovat znak v JS. Běžným předřazením zpětného lomítka před uvozovku (jak ukazuje Dero) escapovat nemůžeš, protože se jí chytí už HTML parser a JS mu to nevymluví. JavaScript dovoluje zapsat uvozovku v řetězci i jako \x22, tedy znak s hexadecimálním kódem 22: <span onclick="pridej_tag('<p class=\x22po\x22>','</p>');">text</span>Jinak v HTML samozřejmě můžeš místo class="po" psát class='po' (apostrof uvnitř JS řetězce zapíšeš jako \' nebo \x27) nebo class=po. |
||
Marty Profil |
#5 · Zasláno: 20. 1. 2007, 14:15:27
Děkuji Chamurappimu za fungující radu a vysvětlení.
Téma uzavřeno. |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0