Autor | Zpráva | ||
---|---|---|---|
Pavel Profil * |
#1 · Zasláno: 31. 12. 2004, 00:36:24
Prosím o pomoc. Chci kus mojí stránky zobrazovat náhodně z několika možností, něco jako má tady Yuhů v příkladu s příslovími.
Problém je, že bych potřeboval zobrazovat nejen prostý text, ale text formátovaný v HTML a hlavně obsahující i jiný funkční in-line JavaScript. Ten potřebuje přesnou syntaxi s uvozovkami a tím pádem přestane hlavní JavaScript (který mění přísloví, v mém případě formátované úseky) fungovat. Moje otázka tedy zní: Lze nějak do document.write dostat syntaxi jiného in-line Javascriptu? Předem díky. (P.S.: Vím, že v document.write lze u HTML značek uvozovky nahradit apostrofem - to funguje -, ale u toho vnořeného JavaScriptu, který je součástí jednoho z tagů, to nefunguje.) (P.S. 2: Myslím že se to běžně používá, ale raději to vysvětlím: in-line JavaScriptem myslím, že je součástí HTML tagu, není to více-řádkový script) |
||
Yuhů Profil |
#2 · Zasláno: 31. 12. 2004, 00:59:08
Hoď sem ten příklad, co ti nefunguje, opravíme ho. Bez toho budeme zbytečně psát tuny ukázkových skriptů.
|
||
Fred Profil |
#3 · Zasláno: 31. 12. 2004, 02:09:10
Možná zkus mrknout sem xy.wz.cz/ lenoch-editor (oprav si ten link, nechci, aby to google zaindexoval !) ,jestli by se Ti nehodil použitý postup. Nahoře je fram kam se doplňuje text, který se po potvrzení v tom horním framu přepíše do toho spodního, a navíc vygeneruje button (červený) , který zase po odkliknutí vyplivne popup s potřebnou částí zdrojového kódu (ten se uloží a includuje jinde). Dělá se to přes input hidden. No uvidíš je to taková blbina, ale jestli tomu rozumím je to možná ono
|
||
Leo Profil |
#4 · Zasláno: 31. 12. 2004, 02:12:32
Misto uvozovek musite psat uvozovky se zpetnym lomitkem pred nima (tzv. escape sekvence). Nevim jestli toto forum zachova puvodni podobu toho, co napisu, ale asi takhle
misto " napisete do zdrojaku \" a misto ' napisete \' Leo |
||
Fred Profil |
#5 · Zasláno: 31. 12. 2004, 02:18:58
Myslím, že Leo to pochopil krapet líp než já. Z té odpovědi jsem teprve pořádně pochopil dotaz, no nic ráno přestěhuju lenoch-editor :-)
|
||
Leo Profil |
#6 · Zasláno: 31. 12. 2004, 02:20:55
Jo, proslo to. Jinak pokud vypisujete element script JavaScriptem, teda neco jako
<script ...> document.writeln("</script>..."); </script> tak muze dojit k fatalnimu problemu / nektere prohlizece totiz to </script>, byt je vlastne v retezci, povazuji za ukonceni elementu script, v nemz je metoda writeln volana. Takze se to musi rozepsat: document.writeln("</"+"script>"...) napriklad. Striktne vzato by se ve writeln mely takhle (nebo jinak) obchazet vsechny uzaviraci tagy, tzn. i treba </b>, ale s tim vetsinou prohlizece problem nemaji. Neco je o tom tady: http://www.w3.org/TR/REC-html40/appendix/notes.html#notes-specifying-d ata (B.3.2, Element content) Leo |
||
habendorf Profil |
#7 · Zasláno: 31. 12. 2004, 14:15:33 · Upravil/a: habendorf
Leo: Striktne vzato by se ve writeln mely takhle (nebo jinak) obchazet vsechny uzaviraci tagy, tzn. i treba </b>
Tak jsem konečně pochopil, proč mi na document.writeln("<head>"); validátor hlásí, že zavírám head, které nebylo otevřeno (a obdobně i pro další tagy). Takže díky, zase jsem o malinko chytřejší. |
||
Leo Profil |
#8 · Zasláno: 31. 12. 2004, 14:53:07
Ono je uplne nejlepsi pokud to jenom trochu jde document.write(-ln) nepouzivat a resit to pres DOM (createElement, appendChild apod.) Leo
|
||
Pavel Profil * |
#9 · Zasláno: 2. 1. 2005, 16:53:52
Velmi děkuji zejména Leovi, to bylo přesně to, co jsem potřeboval. Je fantastické, že na českém internetu existuje fórum, kde se člověk dočká kvalifikované odpovědi ani ne do dvou hodin! Proto ještě dovolte, abych Yuhůovi a všem administrátorům poděkoval za jejich práci na tomto fóru a Yuhůovi speciálně za celý projekt jakpsatweb.cz, který představuje snad nejlepší a nejrozsáhlejší návod na tvorbu webu, jaký jsem kdy viděl. Ještě jednou díky, hodně sil do další činnosti (má ohromný smysl!) a P.F. 2005 všem!
|
||
Časová prodleva: 4 měsíce
|
|||
gd Profil * |
#10 · Zasláno: 13. 5. 2005, 14:30:03
etrterrt
|
||
Časová prodleva: 20 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0