ďťż

[ajax]wywołanie funkcji js po pobraniu strony

       

Podstrony


telcocafe

Witam, mam 2 pliki; index.php:
<html> <head> <script> function ZapytaniePHP(url){ if (window.XMLHttpRequest)xmlHttp = new XMLHttpRequest(); else if (window.ActiveXObject)xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); xmlHttp.onreadystatechange = AjaxPHP; xmlHttp.open("GET", url, true); xmlHttp.send(null); } function AjaxPHP(){ if (xmlHttp.readyState == 4 || xmlHttp.status == 200){ document.getElementById('idea').innerHTML = xmlHttp.responseText; } } </script> </head> <body> <input type=button onclick="ZapytaniePHP('pobierz.php')" value='ok, click '> <div id='idea'></div> </body> </html>
i plik pobierz.php:
<script>alert(0);</script>
jednak po kliknieciu "ok, click" komunikat się nie pojawia. Co jest nie tak? gdzie powinienem zagnieździć tą funkcję?
Z góry dziękuje
Pozdrawiam



Skryptu w ten sposób nie wywołasz. Musisz użyć eval.

Jeśli mam być szczery, to nie lepiej skrypt JS umieścić w pliku tym co teraz masz funkcje AJAX-a? Po co kombinować?
Poza tym, tak napisany skrypt(w znaczniku body) jest wywoływany podczas ładowania strony. Nie ma więc szans, żeby się załadował po pobraniu przez AJAX.

Chyba że alert wywołasz w innej funkcji, którą natomiast wywołasz z poziomu funkcji AjaxPHP(). To czysto hipotetyczne, gdyby docelowy kod był bardziej rozbudowany i być się jednak upierał przy AJAX-ie. Czyli:
plik pobierz.php:
function wykonaj(){ alert(0); }

i funkcja AjaxPHP():
function AjaxPHP(){ if (xmlHttp.readyState == 4 || xmlHttp.status == 200){ document.getElementById('idea').innerHTML = xmlHttp.responseText; wykonaj(); } }

Teoretycznie powinno działać. Jak nie to podaj błędy konsoli Javascript :)

andrzej_aa: rzeczywiście eval chyba lepszy :) Kompletnie zapomniałem o nim :)

ok, dzieki, skorzystałem z rad i sobie poradziłem;)




Jeśli mam być szczery, to nie lepiej skrypt JS umieścić w pliku tym co teraz masz funkcje AJAX-a? Po co kombinować?
to zależy od zastosowań skryptu ... pamiętaj, że są skrypty dynamiczne, a przynajmniej - dane do nich są generowane dynamicznie ... JSON jest wykonywany właśnie przez "eval" ;)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.