Javascript Datei für dynamisch verändertes Div nachladen
Ich habe eine Hauptseite bei der ich in ein Div per jquery.ajax dynamisch neuen Content lade. Dabei handelt es sich um kleine Mini-Apps. Diese wiederum benötigen dann teilweise eigene Javascript Bibliotheken. Um diese zu laden bin ich nach dem Muster auf dieser Seite vorgegangen. Nun ergeben sich allerdings zwei Probleme:
1. Eine dynamisch geladene Javascript Datei wird nicht automatisch ausgeführt (edit: Eigentlich werden nur Funktionen im Stil von "var init = function () {}" nicht automatisch ausgeführt. Alles andere funktioniert). Ich möchte beispielsweise ein neu erzeugtes Map Div im dynamischen Div mit einer OpenStreetMap Karte füllen, sobald das dynamische Div geladen wird. Das Map Div bleibt dann allerdings leer.
Aktiviere ich jetzt allerdings Firebug, wird aus irgendeinem Grund die Karte dann doch geladen. Kann ich dieses Verhalten, was von Firebug ausgelöst wird auch irgendwie selbst erzeugen? Scheinbar werden bei der Aktivierung alle im DOM enthaltenen Javascripte neu geladen.
2. Sind die neuen Scripte einmal geladen, lassen sie sich nur aus dem DOM, aber nicht aus dem Speicher des Browsers entfernen. Ich löse das nun damit, dass ich beim beenden einer Mini-App die Hauptseite einfach mit location.reload neu lade. Das funktioniert zwar, aber so richtig schön ist das nicht. Gibt es da noch eine geschicktere Lösung?
Schonmal danke für jeden hilfreichen Tipp :)
Hier noch ein Beispiel zur Veranschaulichung:
Am Anfang ist das div leer.
Anschließend wird folgendes über $("#apps").html(ajaxResponse) in das apps div geladen:
Ach so, nur um das als Fehlerquelle auszuschließen: Dieses OSM Karten Beispiel funktioniert, wenn ich das entsprechende Script statisch auf der Hauptseite lade und das Map Div ebenfalls statisch vorhanden ist.
Ich habe eine Hauptseite bei der ich in ein Div per jquery.ajax dynamisch neuen Content lade. Dabei handelt es sich um kleine Mini-Apps. Diese wiederum benötigen dann teilweise eigene Javascript Bibliotheken. Um diese zu laden bin ich nach dem Muster auf dieser Seite vorgegangen. Nun ergeben sich allerdings zwei Probleme:
1. Eine dynamisch geladene Javascript Datei wird nicht automatisch ausgeführt (edit: Eigentlich werden nur Funktionen im Stil von "var init = function () {}" nicht automatisch ausgeführt. Alles andere funktioniert). Ich möchte beispielsweise ein neu erzeugtes Map Div im dynamischen Div mit einer OpenStreetMap Karte füllen, sobald das dynamische Div geladen wird. Das Map Div bleibt dann allerdings leer.
Aktiviere ich jetzt allerdings Firebug, wird aus irgendeinem Grund die Karte dann doch geladen. Kann ich dieses Verhalten, was von Firebug ausgelöst wird auch irgendwie selbst erzeugen? Scheinbar werden bei der Aktivierung alle im DOM enthaltenen Javascripte neu geladen.
2. Sind die neuen Scripte einmal geladen, lassen sie sich nur aus dem DOM, aber nicht aus dem Speicher des Browsers entfernen. Ich löse das nun damit, dass ich beim beenden einer Mini-App die Hauptseite einfach mit location.reload neu lade. Das funktioniert zwar, aber so richtig schön ist das nicht. Gibt es da noch eine geschicktere Lösung?
Schonmal danke für jeden hilfreichen Tipp :)
Hier noch ein Beispiel zur Veranschaulichung:
Am Anfang ist das div leer.
Code:
<div id=apps></div>
Anschließend wird folgendes über $("#apps").html(ajaxResponse) in das apps div geladen:
Code:
<script>
loadjscssfile("osmscript.js", "js") //dynamisch osm Script(e) nachladen
</script>
<div id=map></div>
Ach so, nur um das als Fehlerquelle auszuschließen: Dieses OSM Karten Beispiel funktioniert, wenn ich das entsprechende Script statisch auf der Hauptseite lade und das Map Div ebenfalls statisch vorhanden ist.
Zuletzt bearbeitet: