Met AJAX pagina inladen
Ik ben al een tijdje aan het stoeien met een probleempje, waar ik niet uitkom waarom het niet werk.
Het is dus zo; Ik laad met AJAX pagina's in, in een DIV. ( Via getElementById('element').innerHTML = responseText etc etc etc )
De pagina, die ik laad, bevat gewoon tekst, en is een PHP bestand.
Het rare is, dat zodra ik dus een pagina inlaad via deze methode, ik geen javascript in het ingeladen PHP kan gebruiken. ( Ookal bevat hij alleen HTML ).
Voorbeeld van hoe het systeem werkt kun je zien op; http://www.wishbv.nl/
Hoe los ik het probleem op zodat ik gewoon javascript kan gebruiken op de ingeladen pagina?
Wat bedoel je met dat je geen javascript kunt gebruiken? Als ik namelijk naar de foto's pagina ga en op een foto klik krijg ik die wel mooi in een venstertje te zien. Volgens mij gaat dat ook via een scriptje, of niet?
<script type="text/javascript">
alert(1);
</script>
Gebeurt er niets, zodra ik deze pagina laad.
Het foto pagina gebeuren roept een javascript functie aan, dus in deze pagina zit geen javascript verwerkt.
Ik laad dus op deze manier een pagina in, simpel:
http://pastebin.com/YZ0gTUct
De pagina test.php bevat:
<script type="text/javascript">
alert(1);
</script>
Nu krijg ik die alert er dus niet uit, als ik het ipv innerHTML alert doe, krijg ik gewoon in de alert te zien;
<script type="text/javascript">
alert(1);
</script>
Is er hier een oplossing voor?
Als jij het op de ingeladen pagina wilt doen dan wil het niet.
Maar als jij nu op die ingeladen pagina je Javascript include?
Misschien omslachtig maar is het proberen waard =)
Nou kijk het probleem is dus, dat ik op deze manier ook geen advertenties van bijv. google adsense kan laten zien. Ook facebook buttons etc gaan via javascript en laten zichzelf niet zien.
Wil jij dan google ads in je content hebben?
Gaat niet alleen om google ads, gewoon het feit dat ik geen javascript kan gebruiken op de ingeladen pagina vind ik raar. Ik ben nieuw op dit gebied en snap niet wat er fout gaat.
Je kunt toch gewoon wat je wil uitvoeren in een JS file , in functies, zetten, deze file altijd laden (in je main pagina) en on complete (of success wat jij wil) van de ajax call de betreffende functie uitvoeren?
Dennis Smink op 03/04/2012 20:58:35:
Nou, kijk stel ik laad gewoon een simpel php bestand in, waarin staat:
<script type="text/javascript">
alert(1);
</script>
Gebeurt er niets, zodra ik deze pagina laad.
<script type="text/javascript">
alert(1);
</script>
Gebeurt er niets, zodra ik deze pagina laad.
javascript is event driven. Javascript gaat dus pas aan het werk als het een trigger krijgt.
Zo'n trigger kan zijn: een muisklik, het laden van de pagina, onChange van een input, ...
Zomaar losse statements laden, zoals alert(1); zal inderdaad geen effect hebben.
Er is geen enkele trigger die die alert(1) in gang trekt.
Je moet op een andere manier nadenken over javascript.
De oplossing zal waarschijnlijk liggen in het wrappen van functionaliteit in functies.
[update] Basically wat Jacco Engel zegt ... [/update]
Nu, kan je een specifiek en echt voorbeeld geven van wat je wil bereiken? alert(1) zal je niet nodig hebben ...
Met een echt voorbeeld kunnen we een voorbeeld-oplossing geven en zien of je daar naartoe kan werken
Gewijzigd op 05/04/2012 18:48:54 door Kris Peeters