[JS][AJAX] Zagnieżdżanie skryptu JS

0

Ostatnio zacząłęm się bawić AJAXEM, lecz podczas prac wynikł pewien problem. Otóż staram się otworzyć zmienny "kawałek" dokumentu poprzez metode open, a nastepnie "wrzucić" go do div-a metodą responseText. Jednak po drodze wynikł jeden zgrzyt. Otóż przeglądarki nie radzą sobie z skryptami JS zagnieżdzonymi w ładowanym dokumencie. Troche to zawiłe, więc spostaram się przetoczyc przykład. Mam plik a.php o nastepujacej zawartości:

<script type="text/javascript">
alert('abcd');
</script>

Następnie mam główny dokument index.php, który ma w sobie jednego linka podpiętego pod funkcję JS, której zadaniem jest wwalenie do div-a tresci a.php. Jednak po wrzuceniu tegoż pliczku skrypt się nie wykonuje, i na ekranie nie widzę żadnego komunikatu. Czy wie ktoś może w czym popełniam błąd?

<font size="1">// tematu nie było - dodałem - Ktos</span>

0

no chyba nie za bardzo zrozumiałeś po co i jak się AJAX stosuje
ale jeśli chcesz w ten sposób żeby się pokazał alert to nie możesz przypisać po prostu innerHTML, tylko musisz korzystać z DOM, ew. utworzyć obiekt, jemu przypisać innerHTML i ten obiekt appendować w dokument, wtedy skrypt się "odpali"

0

ten alert to tylko przyklad. moze malo trafny, ale to jest tylko przyklad ktory ma na celu zobrazowanie tego, ze ten skrypt sie nie wykona. skrypt docelowy glownie opiera sie na tym, ze buduje podmenu, wiec alertow nie ma.

0

a to menu musi byc w ten sposob budowane? Jezeli dobrze sie domyslam, jak chcesz to zrobic, to nie potrzeba tego typu mechanizmow...

0

Niestety rzeczywistość jest (jak zwykle) o wiele bardziej skompilowana i faktem jest że to musi raczej być w ten sposób. bynajmniej nie wpadłem na inny pomysł.

@Adamo: Nie udało mi się na razie zrobić tego w ten sposób w jaki proponujesz.

0

wiec moze zdradz nam, co to dokladnie ma byc i do czego sluzyc :)

0

dłubie sobie stronke szkoły. mam takie założenie, ze podstrony beda ladowne ajaxem. Ok to jest spoko. prymityw ;). ale na jednej podstronce jest sobie lista absolwentow z podzialem na roczniki - drugi ajax. tylko ze lista rocznikow jest generowana dynamicznie przez skrypt JS. i to byloby na tyle

0

ja bym przerzucil ten skrypt z rocznikami jako modul do tego glownego, ladowalby sie od razu przy ladowaniu strony glownej, a np. po kliknieciu na link do podstrony z absolwentami zamist ladowac sie strona, wykonywala by sie funkcja generujaca absolwentow...

trzeba tylko przepisac ten drugi skrypt, a wlasciwie torche go zmodyfikowac :P

0

Z tym JavaScript'em to możesz spróbować użyć funkcji eval() na responseText. Generalnie jednak odradzam. W zamian za to niech skrypt php wysyła Ci odpowiedniego XML'a, a Ty parsując go JavaScript'em zbudujesz odpowiedni kod html i wstawisz do innerHTML div'a lub gdzie tam chcesz.

0

Co do wstrzykiwania JS to znalazłem dzisiaj coś takiego, może być interesujące:
http://serafin.devonstudio.pl/2006/06/21/javascript-on-demand/

0

Na początku mojej wypowiedzi :D chciałbym podziękować wszystkim tu zgromadzonym za liczne przybycie i porady w jaki sposób rozwiązać ten problem. no już dośc tego patetycznego przemówienia i do rzeczy. chyba faktycznie do zrobie w ten sposób, że ten skrypt przeniosę na stronke główną jako funkcję i go po prostu wywołam. no. ew pobawię się z parsowaniem XML-a

1 użytkowników online, w tym zalogowanych: 0, gości: 1