Mit diesem Script kannst du Javascript in in ein DIV element laden, und dann ausführen...
Hoffe es hilft!
mlg
Lukas
/*
Funktion zum Aufrufen einer HTML/XML Seite per Javascript.
Bei Bedarf werden auch Javascript-Inhalte von der übertragenen Seite aus aufgerufen.
Der Aufruf gestaltet sich wie folgt:
<script language="javascript" type="text/javascript">
getAXAH('http://www.xyz.com/testseite.html','hierHinein');
</script>
<div id="hierHinein"></div>
Wenn die einzubindende Seite Javascript enthält, muss in diesem die Kommentare in der form /* Kommentar * / geschrieben werden,
da durch die Eval Function alle Javascriptstatements als eine Zeile behandelt werden.
----------------------------------
(C) 2006 by Lukas Dorn-Fussenegger
*/
/* getAXAH('http://www.url.com', 'DivElementWosHineinsoll') */
function getAXAH(url,elementContainer){
/* Optionen festlegen */
var showPlatzhalterWhileLoading = false;
var execJavaScriptAfterTransfer = true;
var changeStatusbar = false;
/* Statuszeile anpassen. */
if (changeStatusbar == true) { window.status = 'Ajax:' + url; }
/* Anzeigen eines Blindtextes während des Ladevorganges, aber nur wenn noch kein Inhalt im Element vorhanden ist... */
/* Diese Zeilen können bei bedarf entfernt werden */
if (showPlatzhalterWhileLoading == true) {
if (document.getElementById(elementContainer).innerHTML == '') {
document.getElementById(elementContainer).innerHTML = "Lade von " + url + " ...";
}
}
var theHttpRequest = getNewHttpObject();
theHttpRequest.onreadystatechange = function() {processAXAH(elementContainer);};
/* Überprüfen ob eine Zufallszahl hinzugefügt werden soll, um den Inhalt nicht zu cachen. */
/* Das hinzufügen der Zufallszahl ist deswegen notwendig, da die Inhalte sonst im Browser gecached werden, und nicht neu geladen werden. */
/* Überprüfen ob bereits Parameter bei der Abfrage verwendet werden oder nicht */
if (url.indexOf('?') == -1) {
/* Wenn keine Parameter vorhanden sind wird ein komplett neuer Parameter-Satz deklariert */
url = url + '?RANDOM' + Math.floor(Math.random()*1024*1024) + "=" + Math.floor(Math.random()*1024*1024) + Math.floor(Math.random()*1024*1024);
} else {
/* Wenn bereits Parameter angegeben wurden, wird hinten noch ein weiterer angehängt */
url = url + '&RANDOM' + Math.floor(Math.random()*1024*1024) + "=" + Math.floor(Math.random()*1024*1024) + Math.floor(Math.random()*1024*1024);
}
theHttpRequest.open("GET", url);
theHttpRequest.send(false);
function processAXAH(elementContainer){
if (theHttpRequest.readyState == 4)
{
if (theHttpRequest.status == 200) {
document.getElementById(elementContainer).innerHTML = theHttpRequest.responseText;
/* Javascript ausführen wenn eines mitgesendet wurde */
if (execJavaScriptAfterTransfer == true) { execJS(document.getElementById(elementContainer)); }
}
else
{ document.getElementById(elementContainer).innerHTML="Error! Fehler: " + theHttpRequest.statusText; }
} /* End If */
} /* End Function */
if (changeStatusbar == true) { window.status = ''; }
}
function getNewHttpObject() { var objType = false; try { objType = new ActiveXObject('Msxml2.XMLHTTP');}
catch(e) {try { objType = new ActiveXObject('Microsoft.XMLHTTP'); } catch(e) { objType = new XMLHttpRequest(); }}
return objType; }
function execJS(node) {
/* Element auf Javascript überprüfen, und falls nötig ausführen */
var bSaf = (navigator.userAgent.indexOf('Safari') != -1);
var bOpera = (navigator.userAgent.indexOf('Opera') != -1);
var bMoz = (navigator.appName == 'Netscape');
var st = node.getElementsByTagName('script'); var strExec;
for(var i=0;i<st.length; i++) { if (bSaf) { strExec = st[i].innerHTML; } else if (bOpera) { strExec = st[i].text; }
else if (bMoz) { strExec = st[i].textContent; } else { strExec = st[i].text; } try { eval(strExec); } catch(e) { alert(e);}}}
Wer Rechtschreibfehler findet, darf sie behalten.