Autor Zpráva
BigJoe
Profil
Čuss kluci, nevíte jak nastavit document.write tak aby se text vepsal za určitý text/tag ve zdrojáku ?????
Leo
Profil
Dat ten javascript za ten tag, Leo
BigJoe
Profil
A jinak by to nešlo pls???
BigJoe
Profil
Mám třeba kod:
<head>
<script>
document.write("text_ktery_se_vypise_za_body");
</script>
</head>
<body>
</body>

A s "document.write("text_ktery_se_vypise_za_body");" potřebuji udělat néco aby se ten text vepsal za tag body....Nebo jakýkoliv jiný.... Hledám hledám ale nevim co mám hledat takže sem zatim nic nenašel :(....MOc díky za rady
Leo
Profil
Pak nemuzete pouzit document.write (ktery je ostatne k nicemu), ale praci s uzly (node): createElement, appendChild apod. Leo
BigJoe
Profil
Mog bys to pls néjak upřesnit ???co a jak by si použil ty na mim místě ???
Chamurappi
Profil
Reaguji na BigJoa:
Nikdo tu neví, na jakém jsi místě, co vlastně potřebuješ a čeho přesně chceš docílit.
Práce s uzly je docela ukecaná, používá se úplně jinak než document.write(). Jestli tě zajímá jak, hoď si do vyhledávače pojmy, které uvedl Leo.

Ještě je jiná možnost: Do elementů kdekoliv v dokumentu můžeš vkládat přímo HTML kód pomocí vlastnosti innerHTML, stručně se o ní dočteš na JPW.
peta
Profil
BigJoe
nevime, co mas, nevime, co chces.

Na vysvetlenou...
LEO
mas tag <b>ahoj<b> za nej napises ten script
<b>ahoj<b><script>document.write(...);</script>

LEO2
google.com a dohledej si literaturu ke createElement, appendChild v javascript
- pouzita metoda je nespravna, protoze pracuje s generovani dokumentu. Po ukonceni zobrazene stranky document.write prepise celou stranku uplne od zacatku

Chamurappi
pouzij metodu innerHTML

K tagu se dostanes napriklad pres
document.getElementByTagName('B');
za tag myslim metodou tag.nextShibing
BigJoe
Profil
Moc dík za rady... I když teď už se v nich nějak neviznám :-)... Tady na foru sem našel script který vypíše do určitého elementu s ID nějaký tag...
<body>
<script language="JavaScript" type="text/javascript">
function pridej()
{
var newInput = document.createElement('input');
newInput.setAttribute("id","inp3");
newInput.setAttribute("type","text");
document.getElementById("vlozeni").appendChild(newInput);
};
</script>
<input type="text" id="inp1" value="aaa"/>
<span id="vlozeni"></div>
<input type="text" id="inp2" value="bbb"/><br>
<input type="button" id="d1" value="pridej input" onclick="pridej()" />
</body> 

Ovšem když "getElementById("vlozeni")" zmenim na "getElementsByTagName("span")" tak by to mělo fungovat stejně... Ale nefunguje... :(
habendorf
Profil
<span id="vlozeni"></div>

Tohle je co?

Lomítka v inputech vyhoď, nebo před ně dej mezeru.
habendorf
Profil
Předtím jsem to nedočetl.

Ovšem když "getElementById("vlozeni")" zmenim na "getElementsByTagName("span")" tak by to mělo fungovat stejně

Nemělo. A proč bys to proboha dělal?
BigJoe
Profil
No páč to chci vložit nékam kde žádný ID neni C:-)...Jo a omlouvám se za <span id="vlozeni"></div> ,zepoměl sem opravit :)
Joker
Profil
Ovšem když "getElementById("vlozeni")" zmenim na "getElementsByTagName("span")" tak by to mělo fungovat stejně...
Nemělo.

Jinak dostat Javascriptem nějaký kód za nějakou značku není úplně triviální, šlo by to takhle:
- získat příslušný element (tj. getElementsByTagName a potom cyklem procházet pole)
- vyrobit si vkládaný prvek (createTextNode + createElement)
- vzít dalšího sourozence (nextSibling) a připravený prvek vložit před něj (insertBefore).
- nejsem si jistý funkčností, pokud ten prvek nebude mít následujícího sourozence (tj. bude poslední), pokud to nebude fungovat, bude potřeba v takovém případě použít appendChild() u rodiče.

Nějak takhle by to mělo jít. Ale možná existuje i jednodušší řešení problému, jenže v dotazu není napsané, jaký problém to vlastně má řešit.
habendorf
Profil
Joker

Stačí zacílit ten element a innerHTML.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0