Autor Zpráva
spacee
Profil *
Ahoj, resim tady jeden pekne zaludnej orisek - alespon pro me a kolegu ;)...
Mam hotovy JS filtr (sam o sobe dost slozity, ale za to celkem paradne funkcni) - nicmene dnes jsem chtel dodelat jisty modul a na nem jsem se zastavil. Jde o to, ze v selectu vyberu nejakou hodnotu a v zavislosti na ni vypisu dalsi formularova pole pomoci innerHTML. Ovsem nyni potrebuji vypsat defacto javascript v javascriptu, coz mi nejde.
Zde je hodne zjednoduseny priklad toho, co mam na mysli:
<div id="testid">Funguje?</div>
<script>
function testik() {
var ret = '<scr'+'ipt>alert("ahojky");</scr'+'ipt>';
return ret;
}
alert(testik());
document.getElementById('testid').innerHTML = testik();
</script>
Tento skriptik vyhodi alert se spravnym retezcem, nicmene ho 1) budto do DIVu nevlozi, nebo 2) ho vlozi, ale ignoruje. Tak jako tak se funkce testik() neprovede.
A to je prave pro me hacek, nebot drobet slozitejsi obdobu tohoto nutne potrebuji.

Nevite nekdo, zda se to da obejit (resp. zda je nejake reseni tohoto problemu)?
Predem moc diky,
spacee
peta
Profil
<body>
<div id="testid">Funguje?</div>
<script type="text/javascript">
function testik()
{
var ret = 'sss<script type="text/javascript">alert("ahojky");</script>ddd';
return ret;
}
alert(testik());
document.getElementById('testid').innerHTML = testik();
x = document.getElementsByTagName('BODY')[0];
y = document.createElement('SCRIPT');
y.innerHTML = 'alert("fff");';
x.appendChild(y);
</script>

</body>

http://www.volny.cz/peter.mlich/www.htm#mssub16

tag script se v innerHTML ignoruje. Najdi si googlem popis teto funkce nez ji budes pouzivat.
Corben - Radek Zemanek
Profil *
helet... me to nefunguje v ie :(
Petroff
Profil
y = document.createElement('SCRIPT');
y.innerHTML = dynamické vytvoření nějaké funkce (nebo kódu obecně);
x.appendChild(y);

Tohle se používá při komunikaci mezi serverem/stránkou v browseru.
Jsi si jistý, že bys (v nejhorším pomocí eval) se bez toho neobešel?

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: