Autor Zpráva
Generátor
Profil *
Chtěl bych prostřednictvím javascriptu přidat do stránky div s obsahem. Zkoušel jsem toto:

document.getElementsByTagName('body').firstChild.innerHTML += ...


Ale bez úspěchu. Neví někdo jak to udělat?
Joker
Profil
Generátor
"Čistý" způsob je:
1. vytvořit nový element (document.createElement())
2. nastavit mu požadované vlastnosti (setAttribute() atd.)
3. přilepit ho na požadované místo v dokumentu (*nějakýelement*.appendChild() apod.)
Str4wberry
Profil
Odpovídám Generátoru:
„Nečistý“ způsob je:
document.getElementsByTagName('body')[0].innerHTML += …;
Generátor
Profil *
Díky, jen když zavolám
document.body.appendChild(element);
Tak mi konzole vyhodí:
document.body has no properties
Našel jsem, že v XHTML nelze takhle k body přistupovat. Nevím co je na tom pravdy, ale řešení jsem nenašel.
peta
Profil
Generátor
"Nevím co je na tom pravdy, ale řešení jsem nenašel"
viz Str4wberry
document.getElementsByTagName('BODY')[0]

getElement---s---ByTagName, to esko rika o mnoho elementech, cili funkce vraci typ array nikoliv objektHTML, na ktery by slo navazat firstChild.
zkus priste alert(document.getElementsByTagName('BODY'))

pravdy je na tom hodne, tam existuje documentElement misto body, mam ten dojem. Vetsinou funguje tagName a kdyz ne, je treba napsat si podminku pro ruzna body.
Chamurappi
Profil
Reaguji na petu:
tam existuje documentElement misto body
Nesmysl, document.documentElement je <html>, document.body je <body>.
V XHTML document.body nefunguje a document.getElementsByTagName('BODY')[0] také ne.
Generátor ale XHTML nejspíš nepoužívá, takže ho tohle nemusí trápit.

Reaguji na Generátor:
Chybu ti pravděpodobně hlásí proto, že se pokoušíš přidávat cosi do <body> v okamžiku, kdy tento elementu v DOMu ještě neexistuje.
spacer
Profil *
Caute,
tiez potrebujem pomocou JS pridat novy element do uz existujuceho a robim to po nacitani stranky takze by malo byt vsetko ok.
Robim to postupom ako opisal v druhom prispevku Joker, problem je ale v tom, ze nevidim zmenu. Ked si dam vypisat obsah pomocou xxx.outerHTML tak je vsetko ok, ale jednoducho nevidim ze by sa naozaj vykonala. Treba to nejak refreshovat alebo nieco podobne?
Dik

spacer

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: