Autor | Zpráva | ||
---|---|---|---|
Ivan Profil * |
#1 · Zasláno: 19. 3. 2010, 11:34:33
Ahoj, mám otázku.. Do proměnné posílám řetězce, které následně zobrazuji. Problém mám, když do proměnné zašlu řetězec obsahující html tagy. Jde mi konkrétně o to, že když zašlu tag <br>, řádek se mi nezalomí, ale vypíše se na obrazovku. prosím poraďte mi, jak docílim zalomení textu v obsahu proměnné. Napadlo mě doplnit proměnnou ještě o náhradu části řetězce '<br>' => '\n', ale nevím, jak toho v JS docílit jelikož v JS nejsem moc zběhlý, neznám na to funkci. Děkuji za pomoc
|
||
sysel Profil |
#2 · Zasláno: 19. 3. 2010, 12:19:38
Ivan:
„Do proměnné posílám řetězce“ „jak docílim zalomení textu v obsahu proměnné“ Bude potřeba upřesnit, co odkud a kam se "posílá". Uvnitř proměnné text represntuje řetězec znaků - o zalomení a o tom , které znaky ho způsobí, rozhoduje způsob zobrazení. Tedy v proměnné si můžu pro znak konce řádku (odstavce) použít jakýkoliv unikátní znak, popřípadě sequenci znaků. Hledání a náhrady znaků v řetězci se v JavaScriptu i jinde v programech nejlépe provádějí pomocí RegExpů. Velmi pěkný přehled je zde, a stručný výklad například tamhle. |
||
Ivan Profil * |
#3 · Zasláno: 19. 3. 2010, 12:30:43
Nevím zda to bude dostačující, ale mám JS kod takto:
promenna = document.createTextNode('První řádek<br>Druhý řádek'.replace(new RegExp('<br>','g'),'\n')); ve výpisu textu se tag '<br>' zobrazuje, ale pro mě z neznámého důvodu se v HTML nezalamuje a zalomení řádku '\n' se nezobrazuje a rovněž jako '<br>' nezalamuje :(( |
||
sysel Profil |
#4 · Zasláno: 19. 3. 2010, 14:49:16 · Upravil/a: sysel
Prosím, používejte vyznačení programového kódu příslušnými tlačítky |<>|.
Snažíte se vytvořit ne obyčejnou řetězcovou proměnnou, ale objekt TextNode DOMu. TextNode zřejmě z principu obsahuje pouze text a tag <br> ani žádný jiný se do něj vložit nedá. Rovněž pokusy o vložení nějakých 'lámacích' značek typu \n se zřejmě nezdaří, protože se prostě nezobrazí! Pro zobrazení zalomení je potřeba do textu vložit právě tag <br> a to Váš program nedělá. Použití createTextNode mi připadá poněkud kostrbaté, radši bych si text připravil a vložil na určené místo pomocí objekt.innerHTML = textovyRetezec. Zkusil jsem toto: var neco0 = document.createTextNode('První řádek'); var neco1 = document.createElement('br'); var neco2 = document.createTextNode('druhy řádek'); document.body.appendChild(neco0); document.body.appendChild(neco1) ; document.body.appendChild(neco2) ; a to funguje; a tohle: var objekt = document.createElement('span'); objekt.innerHTML = 'Prvni radek<br>druhy radek <br>'; document.body.appendChild(objekt); |
||
Časová prodleva: 14 let
|
0