Autor | Zpráva | ||
---|---|---|---|
Kápo Profil |
#1 · Zasláno: 23. 12. 2009, 00:29:06 · Upravil/a: Kápo
Mohol by mi dakto vysvetlit, ako sa zapisuju veci typu document.write(trebars for cyklus, alebo znova <script>document.write(...
Ked som sa pytal ako zapisat document.write, v ktorom bol dalsi zapis s vlozenim externeho scriptu a niekto mi odpovedal, a boly tam nejake cary mary so spatnymi lomitkami ("\") atd...na jakpsatweb.cz v sekcii javascript som tuto syntax nenasiel, vysvetlil by mi dakto prosim aspon princip, ako pristupovat k znakom ",',/ atd, ked ich zapisujem do document.write? Za pripadnu pomoc dakujem |
||
Lopata Profil |
#2 · Zasláno: 23. 12. 2009, 02:25:07
Kápo:
<rejp>průměrný moderátor by Tě tu napomenul, že nepoužíváš diakritiku :-P</rejp> Ten první dotaz jsem příliš nepochopil. Pokud máš nějaký skript v řetězci a potřebuješ ho vykonat, je na to funkce eval() eval('alert("Kápo")'); Není to ale dvakrát šťastné řešení a obecně bych se snažil předejít situaci vůbec s takovým řetězcem pracovat. Zpětná lomítka fungují následovně: var x = 'normalní řetězec'; // vše ok var y = "normalní řetězec"; // vše ok var z = '<a href="www.seznam.cz">Seznam</a>'; // vše ok -> uvozovky v apostrofech nevadí (ani obráceně) var error = "<a href="www.seznam.cz">Seznam</a>"; // error -> uvozovky v uvozovkách být nemůžou var fixed_error = "<a href=\"www.seznam.cz\">Seznam</a>"; // vše ok -> přidáním \ před znak mu "sebereme původní funkci a on se bude chovat jako každý jiný znak" var tricky = "\\\""; // má hodnotu \" Už chápeš...? ;-) |
||
Kápo Profil |
#3 · Zasláno: 23. 12. 2009, 13:10:42 · Upravil/a: Kápo
No skoro, ale to posledné som nepochopil...prečo "\\\"" má hodnotu \"?
ale keď chcem napriklad zapísať <script>document.write("<script src='a.js'></script?");</script> je to takto dobre? vo výraze nie su uvodzovky v uvodzovkách, ale apostrofy v uvodzovkách, takže by to malo ist...môžem to nahradiť aj týmto: document.write("<script src=\"a.js\"></script?"); takže celé je to o tom, že nesmú byť uvodzovky v uvodzovkách? |
||
Yur4Y Profil |
#4 · Zasláno: 23. 12. 2009, 13:32:25
Kápo:
„No skoro, ale to posledné som nepochopil...prečo "\\\"" má hodnotu \"?“ Keď používate úvodzovky, musíte escapovať úvodzovky a lomítko. Preto \ sa zapíše ako "\\" a úvodzovka ako "\"". Dokopy teda zápis \" vyzerá ako "\\\"", čo je to isté ako '\\"' - pretože ak používate apostrofy, escapujú sa zasa spätné lomítka a apostrofy. Značku </script>, ak ju vypisujete pomocou document.write, vypíšte po častiach, napr. "</scr"+"ipt>" alebo proste nejak zabezpečte, aby tam to </script> nebolo (kľudne aj zápisom "<\/script>"). Je to kvôli tomu, že v Standards móde prehliadač pri parsovaní HTML nepozná Javascript a tak Javascript je len od <script> po </script>, a je jedno, či je vnútri ešte neuzavretý reťazec. |
||
Kápo Profil |
#5 · Zasláno: 23. 12. 2009, 21:00:32
Ďakujem za pomoc členovi Lopata (pardon, som zvyknutý písať bez diakritiky, snáď sa mi tento zlozvyk podarí obmedziť alebo úplne odstrániť) a členovi Yur4Y.
|
||
Časová prodleva: 14 let
|
0