HTML-Seite in div-Element und onload
-
Moin,
ich habe hier einen Aufbau, bei dem komplette HTML-Seiten (also inklusive <html><head></head>body>...) per Ajax in ein div-Element geladen werden. Ist das überhaupt erlaubt? Scheint zwar zu funktionieren, allerdings werden Skripte usw. im head ignoriert. Als Abhilfe werden offenbar alle Skript-Elemente gesucht und dem eigentlichen Body hinzugefügt. Da wäre jetzt die Frage, warum Skripte innerhalb des geladenen body-Elements nicht zweimal ausgeführt werden? Einmal im Original und einmal die "kopierte" Version?
Außerdem wird das Body-Tag mit allen Attributen ignoriert, also auch onload.
Welche equivalente Methode gäbe es dafür?
-
Hallo
Nein es ist nicht erlaubt, eine komplette HTML-Seite nochmal einzubeden, auser du benutzt natürlich frames.
Die Onload-Methode wird eh noch selten verwendet, sondern man benutzt dann eher ein Skript-Tag mit folgenden Inhalt:
$(document).ready(function() { // Hier den Ausfuehrenden Code hin, der nach dem Laden des Dokumentes aufgerufen wird });
Dort dann nur noch den Code an passende stelle hin, oder deine OnLoad-Methode aufrufen und du hast das selbe, und es funktioniert auch mit nachgeladenen Ajax-Seiten.
Achja, wenn du über jquery die website nachlädst, dann kannst du auch die ID des Elementes, welches du nur einbetten willst an die URL mit hinhängen (So werden alle Elemente aussen rum ignoriert). Einfach "#elementid" an die URL hängen.
MfG Marco
-
Okay, danke. Dann müssen wohl all diese HTML-Dokumente angepasst werden, das lässt sich aber hoffentlich per Skript machen (das Laden wird nicht über jQuery, sondern irgendein anderes Framework gemacht).
Mit jQuery kenn ich mich noch nicht wirklich aus, aber wird da die Funktion, die man ready() übergibt, nicht evtl. sofort ausgeführt? Weil die äußere Seite ja im Grunde schon lange ready war, bevor das innere Dokument geladen wird.