DOM tree wird nach AJAX nicht neu geladen bzw. innerHtml bleibt undefined...
Hallo Community,
ich bin ein JS/ AJAX Neuling. Mein AJAX lädt ein <script>...</script>, welches nach W3C Standard ja nicht ausgeführt wird. Die (vermeindliche) Lösung:
Das <script> wird nicht ausgeführt....
Erst, wenn ich den selben Code in die Konsole eingebe, geht es...
Auch mit onload, delay etc... Es geht nicht...
Tschau
B-Free
PS: Ich habe es in mehreren Browsern getestet
ich bin ein JS/ AJAX Neuling. Mein AJAX lädt ein <script>...</script>, welches nach W3C Standard ja nicht ausgeführt wird. Die (vermeindliche) Lösung:
alert (document.getElementById("display1")); //output: [object HTMLDivElement]
alert (document.getElementById("display1").innerHtml); //output: undefined (kein DOM update?)
var arr = document.getElementById("display1").getElementsByTagName('script');
alert (arr); //output: [object NodeList] (soweit korrekt, ist ja ein Array mit DOM nodes)
alert (arr); //output: [object HTMLScriptElement] (Also doch ein DOM update, das <script> wurde erkannt)
for (var n = 0; n < arr.length; n++)
eval(arr[n].innerHTML)//run script inside div
Das <script> wird nicht ausgeführt....
Erst, wenn ich den selben Code in die Konsole eingebe, geht es...
Auch mit onload, delay etc... Es geht nicht...
Tschau
B-Free
PS: Ich habe es in mehreren Browsern getestet
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 239717
Url: https://administrator.de/contentid/239717
Ausgedruckt am: 24.11.2024 um 17:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo - kleiner Tipp: lade den JS code als zusätzlichen script Node in den header Node - das sollte funktionieren.
test.html
test.js
test.html
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript">
document.include = function( src )
{
e = document.createElement('script');
e.setAttribute('type', 'text/javascript');
e.setAttribute('src', src);
this.getElementsByTagName('head').item(0).appendChild(e);
}
</script>
</head>
<body>
<input type="button" onclick="document.include('js/test.js');" name="load" value="load" />
</body>
</html>
test.js
alert('success');
Soll ich die <script> Tags aus dem AJAX request in den head schreiben?
ja - beachte dass die script Tags innerhalb des body nur beim Laden der Webseite ausgeführt werden.Weiterhin solltest Du versuchen dein JS so zu schreiben, dass es aus einer *.js Datei geladen werden kann - so kannst du den HTML und JS Code sauber trennen. Meistens sollte die gesamte JS Logik bereits geladen sein und nur HTML Fragmente werden per Ajax nachgeladen.