mit Ajax importiertes Javascript wird nicht ausgeführt
Simon
- javascript
0 Gernot Back
0 Simon
0 Simon0 Simon
Griasts eich,
ich habe ein div-objekt dessen Inhalt ich mit Ajax abrufe und dann mit innerHtml ändere.
Der abgerufene Inhalt enthält ein <script type="text/javascript">-Tag dessen Script nicht ausgeführt wird (auch nicht, wenn ich das gesamte Script in eine Funktion packe und diese vom anfordernden Dokument nach dem innerHtml aufrufe (Fehler: Meine Funktion "... is not definied")).
Muss der Fehler bei meinen Scripten liegen/Hab ich vergessen etwas zu beachten oder kann man gar mit Ajax-Requests angeforderte Javascripts nicht ausführen?
Danke
Simon
Hallo Simon,
Der abgerufene Inhalt enthält ein <script type="text/javascript">-Tag dessen Script nicht ausgeführt wird (auch nicht, wenn ich das gesamte Script in eine Funktion packe und diese vom anfordernden Dokument nach dem innerHtml aufrufe (Fehler: Meine Funktion "... is not definied")).
Bestimmt geht das mit einer Callback-Funktion des Ajax-Requests selbst auch eleganter, aber eine weitere "dreckige" Möglichkeit wäre, am Ende deines Snippets einen Blindpixel mit zu includieren, über dessen onLoad-Event dann die Funktion aufgerufen wird.
Gruß Gernot
Danke Gernot,
den Blindpixel habe ich getestet und er funktioniert, ist aber wie du schon sagtest unsauber.
Die Callback-Funktion des Ajax-Requests möchte ich nicht verwenden, da ich mit Ajax bezwecken will, dass nur benötigter Code übertragen wird. Mit der Callback-Funktion müsste ich alle Scripte der jeweiligen Inhalte des divs in die anfordernde Datei schreiben.
Notfalls werde ich also den Javascript-Code in ein onLoad-Event verpacken.
Aber vlt hat jemand noch eine andere Lösung.?
Habe eine weitere, elegantere Möglichkeit gefunden.
Folgender Quelltext fügt ein <script>-Tag ein, dass das dem Inhalt zugehörige Javascript referenziert.
var jvscript = document.createElement('script');
jvscript.setAttribute('type', 'text/javascript');
jvscript.setAttribute('src', 'javascripts/test.js');
document.getElementById('_head').appendChild(asd);
Ich führe den Code beim Handler des Ajax-Request aus.
Griasts eich,
ich habe ein div-objekt dessen Inhalt ich mit Ajax abrufe und dann mit innerHtml ändere.
Der abgerufene Inhalt enthält ein <script type="text/javascript">-Tag dessen Script nicht ausgeführt wird (auch nicht, wenn ich das gesamte Script in eine Funktion packe und diese vom anfordernden Dokument nach dem innerHtml aufrufe (Fehler: Meine Funktion "... is not definied")).
Muss der Fehler bei meinen Scripten liegen/Hab ich vergessen etwas zu beachten oder kann man gar mit Ajax-Requests angeforderte Javascripts nicht ausführen?
Danke
Simon
Folgender Quelltext fügt ein <script>-Tag ein, dass das dem Inhalt zugehörige Javascript referenziert.
var jvscript = document.createElement('script');
jvscript.setAttribute('type', 'text/javascript');
jvscript.setAttribute('src', 'javascripts/test.js');
document.getElementById('_head').appendChild(asd);
Sry, die 4. Zeile muss natürlich document.getElementById('\_head').appendchild(jvscript); lauten!