Autor | Zpráva | ||
---|---|---|---|
Corben - Radek Zemanek Profil * |
#1 · Zasláno: 19. 9. 2007, 15:24:18
Mam problem, potrebuji spustit alert vlozeny do do id='bla' , vi nekdo jak na to?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title></title> </head> <body> <div id='bla'>text</div> <a href='' onclick='return !udelej()'> mackni </a> <script type='text/javascript'> function udelej() { var text = "<script> alert("ahoj"); </script>"; document.getElementById("bla").innerHTML = text; return true; } </script> </body> </html> |
||
Corben - Radek Zemanek Profil * |
#2 · Zasláno: 19. 9. 2007, 15:33:49
aha... tak koukam ze innerHTML toto ignoruje :/ ... pekne ... nevi nekdo jak to obejit???
|
||
Joker Profil |
#3 · Zasláno: 19. 9. 2007, 15:36:58
Skript uvnitř <div>u? To jsou mi věci...
Buď bych ten kód provedl přímo anebo bych to u toho <div>u pověsil na nějakou událost. |
||
Corben - Radek Zemanek Profil * |
#4 · Zasláno: 19. 9. 2007, 15:45:10
ne to ne ... potrebuju vkladat script dynamicky...
|
||
Corben - Radek Zemanek Profil * |
#5 · Zasláno: 19. 9. 2007, 16:23:34
vycetl jsem z predchozich diskuzich toto:
var b = document.getElementsByTagName('BODY')[0]; var sc_el = document.createElement("script"); sc_el.innerHTML= 'alert("ahoj")'; b.appendChild(sc_el); vsechny prohlizece ok, krom IE!!! muzete mi nekdo helfnout?? sem bezmocnej |
||
nosko Profil |
#6 · Zasláno: 19. 9. 2007, 16:41:36 · Upravil/a: nosko
Mne napadla takáto hlúposť, ale radšej to skús tým tvojim spôsobom(toto zase nefunguje pod operou, s tým IE ti snáď niekto helfne)
//edit: v tých alertoch má byť spätné lomítko a " |
||
Corben - Radek Zemanek Profil * |
#7 · Zasláno: 19. 9. 2007, 16:52:12
jo snad... potreboval bych to jako sul.. uz sem dokonce i nasranej... ******* IE, furt musi byt necim jiny
|
||
nosko Profil |
#8 · Zasláno: 19. 9. 2007, 17:22:00
window.onload= function(){
b = document.getElementsByTagName("BODY")[0]; scel = document.createElement("script"); scel.text= "alert('ahoj')"; b.appendChild(scel); } |
||
Corben - Radek Zemanek Profil * |
#9 · Zasláno: 19. 9. 2007, 17:32:50
aha.. takze stacilo pouzit scel.text misto scel.innerHTML... ***** drat :)) ... thx jeste to zkusim osefovat a jestli to pujde tak good :)
|
||
Corben - Radek Zemanek Profil * |
#10 · Zasláno: 19. 9. 2007, 17:53:03
ta svine IE mi pada :(
|
||
Chamurappi Profil |
#11 · Zasláno: 19. 9. 2007, 18:45:32
Reaguji na Corbena - Radka Zemanka:
Co přesně má ten skript dělat, až bude hotový? Jestli ti jde jen o spuštění jiného skriptu, který máš v řetězci, tak existují mnohem jednodušší a spolehlivější postupy, třeba funkce eval. Reaguji na Jokera: „Skript uvnitř <div>u? To jsou mi věci...“ Na tom je něco divného? |
||
peta Profil |
#12 · Zasláno: 19. 9. 2007, 19:26:36
Corben - Radek Zemanek
innerHTML nespousti JS. Co je na tom divneho? Precti si kazdou literaturu, co k te funkci najdes, melo by to byt v kazde. Kdyby to delal, mohlo by dojit k zacykleni. Uz dost na tom, ze tohle provadi funkce eval() Jako, ty ten script muzes zavolat po tom innerhtml, ne? Neni to ani tyden, co se tu ptal clovek na totez. |
||
Nox Profil |
#13 · Zasláno: 19. 9. 2007, 20:02:32 · Upravil/a: Nox
peta
To není pravda - do innerHTML psát JS můžeš, nebo minimálně události (což je JS) fungují naprosto jistě - tady ten alert nepojede, protože není vyvolaný žádnou událostí a není v události a proto by fungoval, jen kdyby tam byl v okamžiku načítání Corben - Radek Zemanek To co píšeš je dost nesmysl, resp. atomovkou na komára - proč nedáš prostě onclick="alert('ahoj')" ? - a když už to chceš dělat takto, tak proč dáváš do řetězce uvozovky? tam dej apostrof |
||
Corben - Radek Zemanek Profil * |
#14 · Zasláno: 20. 9. 2007, 10:57:20
no je tu problem ten, ze mam Redakcni system a veskere texty jsou v databazy, ajaxem taham text z databaze a v tom je ten problem. V textu se muze vyskytnout script ktery potrebuji aby se spustil (napr. pro vlozeni flashe, nahrazeni odkazu atd). proto to potrebuji delat takhle... samozrejme kdyz budete znat jinaci zpusob jak to udelat aniz bych musel menit ten text vytazeny z db tak to bude ok a budu velmi rad kdyz se o nej podelite. Jinak ten text je validni XHTML retezec se scriptama JS
|
||
Corben - Radek Zemanek Profil * |
#15 · Zasláno: 20. 9. 2007, 10:58:34
mimochodem alert ani nejde... pri pouziti alertu v ie tak prohlizec padne.... ostatni zatim fajci ok...
|
||
Corben - Radek Zemanek Profil * |
#16 · Zasláno: 20. 9. 2007, 11:01:00
jeste abych reagoval na funkci eval() ta pusti skripty ale nepobere html kod a parsovat cely obsah stranek se mi fakt nechce :)
|
||
Corben - Radek Zemanek Profil * |
#17 · Zasláno: 20. 9. 2007, 17:33:41
oprava chybky... pise se databazi :)) ... sem to ale cecha :))
|
||
peta Profil |
#18 · Zasláno: 20. 9. 2007, 21:15:50
Corben - Radek Zemanek
eval prevadi text na JS kod. Ta nema proc prevadet text na document.write. Jinymi slovy, nechapu, co jsi myslel. co se tyce flash/js, tak ten se da nacist do iframe. jestli pouzivas to, ze davas do stranky flash pomoci JS scriptu, tak to je jedna z nejuzasnejsich kombinaci, jak neco zmrvit. Ja bych reklamu dal do iframe nebo nacetl celou stranku s includy v PHP. Nevidim duvod, proc to davat do stranky pres ajax. To pak mas: <script>ajax('<script>reklama document.write("<tag>")'); mohlo by byt velice zajimave u toho resit lomitka pro retezce :) Jo, k Noxovi, scripty se totiz nacitaji s celou strankou. Pokud je stranka nactena, uz se novy script nenacita do ni. Pokud ten script nepridas jinym scriptem, coz innerHTML neni. Tj, v podstate jedine mozne reseni je to proste parsovat a dany script spustit pres eval. Podle mne jine neni, pokud to chces delat takto. To parsovani muzes resit pres JS DOM a tim nahradis cele innerHTML. A kdyz uz pouzijes JS DOM, pak muzes nacitat ajax do XML, ktere je pro toto vhodnejsi. Nox nechapu. Pises totez, co ja pp> "innerHTML nespousti JS" nn> "tady ten alert nepojede, protože není vyvolaný žádnou událostí a není v události a proto " |
||
Corben - Radek Zemanek Profil * |
#19 · Zasláno: 21. 9. 2007, 09:56:07
a kdo rika ze to tak mam delany?? pro vlozeni flashe mam jednoduchou funkci kde predavam parametrem nazev flashe, takze mi staci mit v textu jen <script> muj_flash("tuten",400,200); </script> a mam tam flash... iframe nepouzivam od doby co jsem vylezl ze stredni ;) ... zatim mi to funguje dobre a pokud se nevyskytne nejaky problem, tak to zatim necham...
|
||
Corben - Radek Zemanek Profil * |
#20 · Zasláno: 21. 9. 2007, 10:34:34
a co se tech lomitek tyce, tak v php je dostatek funkci na podobne zalezitosti...
|
||
Časová prodleva: 8 dní
|
|||
peta Profil |
#21 · Zasláno: 29. 9. 2007, 11:18:15
|
||
Corben - Radek Zemanek Profil * |
#22 · Zasláno: 1. 10. 2007, 17:04:38
diky... uz mam vyreseno, ale tohle jetaky zajimavy :)
|
||
Časová prodleva: 17 let
|
0