Autor Zpráva
Petr Bartošek
Profil *
Dobrý den,
nechám načíst stránku, kde v hlavičce je:

<script>
function Vloz()
{
var test= "<script> alert('Hello world'); </script>";
window.document.getElementById('obsah').innerHTML=test";
[
</script>

v těle pak toto:
<div id="obsah" onclick="Vloz()">
Pokusný div
</div>

Proč se prosím po kliknutí na #obsah nezaktivuje funkce alert()?
Dá se takto vůbec zacházet s js?
Velmi děkuji.
Zdraví Petr Bartošek
Str4wberry
Profil
Důvodů je několik:

1) Kód obsahuje syntaktické chyby. Přebytečnou uvozovku za innerHTML=test", špatný druh závorky na konci funkce Vloz.
2) Značka </script> za alertem ukončí celou část skriptu.

Generovat JS kód obdobným stylem by asi šlo, ale proč rovnou nepoužít samotný alert ve funkci Vloz? Čeho se snažíte dosáhnout?
Chamurappi
Profil
Reaguji na Petra Bartoška:
Dá se takto vůbec zacházet s js?
Ne. Element <script> vložený přes innerHTML nikdy nefunguje.
Petr Bartošek
Profil *
Chamurappi, Str4wberry:
Dobrý den,
děkuji za odpověď, uvozovky a závorka jsou jasné, to je překlep. Chci dosáhnout toho, abych po spuštění určitých, různých událostí naplnil element #obsah různým dynamickým kódem i s js(v závislosti na události). Jak řešit takový problém? Neovládám zatím AJAX, ale bude to nejspíš vhodné. Je to tak? Chci se vyhnout znovunačtení stránky. Případně prosím poraďte. Moc děkuji.
Zdraví Petr
_es
Profil
Petr Bartošek:
bych po spuštění určitých, různých událostí naplnil element #obsah různým dynamickým kódem i s js
Prečo by mal byť ten JS kód práve v elemente script v nejakom inom elemente? Prečo ten JS kód po tom „naplnení“ jednoducho nespustíš?
Petr Bartošek
Profil *
_es:
Rád bych aby nově vytvořený kód (část stránky) byl opět dynamický. Potřebuji, aby nový kód opět reagoval na události atd. Jak se taková situace řeší? Přes AJAX?
_es
Profil
Petr Bartošek:
Potřebuji, aby nový kód opět reagoval na události atd. Jak se taková situace řeší?
No tak sa im tie udalosti predsa nastavia. Alebo nastavíš udalosti nejakému rodičovskému prvku a budeš udalosti zachytávať na ňom.
Petr Bartošek
Profil *
_es:
To ano, ale já bych potřeboval do nově vloženého kódu vypsat proměnnou. Ta se takto nevypíše. Jak to udělat?
_es
Profil
Petr Bartošek:
do nově vloženého kódu vypsat proměnnou.
„Vypísať“ kam? Akú premennú? Prečo to „nevypíšeš“ po tom „vyplnení“?

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: