webForumDet fria alternativet

JS körs ej när sidan inkluderas

JavaScript

6 svar · 446 visningar · startad av Pluto87

Medlem sedan sep. 200418 inlägg
Frågan#1

Tjenix.

Har en sida uppdelad i två delar. mha div taggar.
I övre delen finns en sökfunktion som ändrar den nedre div tagens innehåll. Detta har jag åstadkommit mha AJAX.

Efter detta dyker mina problem upp.
Den nya sidan som inkluderas i den nedre div taggen exekverar aldrig sin java kod, oavsett om jag placeras koden i head eller i body.
Om jag lägger in en länk på denna nya sidan, som kör JS koden då fungerar anropet.
Koden körs även om jag laddar endast den externa sidan för sig själv i en webbläsare.

Någon som har en anning om varför detta sker? körs koden innan sidan hunnit ladda klart? finns det ett smidigt sätt att åtgärda detta på?

Medlem sedan juni 20019 519 inlägg
#2

För dokumentet är redan färdigladdat, AJAX laddar bara in innehållet men den kan inte ladda in javascripts innehållet. Du kan lösa det genom att köra eval på dina "script" taggar eller liknande efter du har laddat in texten från förra sidan.

Medlem sedan sep. 200418 inlägg
#3

Tjenix igen.
tack för förslaget.
läste på lite om eval men än så länge så får jag inte rätt på det.
Jag kör eval på xxx.responseText innan sidan laddas in i den nedre div taggen.
Är det inte tanken då att eventuell js kod skall kunna exekveras som normalt eller är det jag som har missuppfattat eval?

Medlem sedan juni 20019 519 inlägg
#4

eval("alert('fubar')"); kommer ge dig en alert box som säger fubar. Den tar en sträng och kör det eventuella skript som finns i strängen.

Medlem sedan sep. 200418 inlägg
#5

Jodå, så mycket förstod jag ;)

kör ajax.
kör eval på returnerat värde innan innehållet returneras till xxx.innerHTML och ersätter den tidigare sidan.
Trots att jag kört eval så exekveras ej JS koden, på den nya sidan.
that's what grind my gears

Medlem sedan juni 20019 519 inlägg
#6

Du kan inte köra eval på hela responseText då den innehåller förmodligen mer än bara javascript? Du kör eval på alla dina <script> taggar i responseTexten.

Medlem sedan sep. 200418 inlägg
#7

Ok. Skall testa detta när jag kommer hem ikväll. Så får köra regexp på responsetexten och därefter mata in det i head mha DOM. om jag har förstått det rätt.

Får hoppas detta funkar. tackar väldigast för föslaget.

257 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)