Autor Zpráva
Pavel
Profil *
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
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
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
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
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
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
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>");

něco něco
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
Ono je uplne nejlepsi pokud to jenom trochu jde document.write(-ln) nepouzivat a resit to pres DOM (createElement, appendChild apod.) Leo
Pavel
Profil *
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!
gd
Profil *
etrterrt
Toto téma je uzamčeno. Odpověď nelze zaslat.