Hallo zusammen,
ich hätte folgendes Problem:
Wenn ich per xmlHTTPRequest und responseText eine HTML-Datei in meine Seite lade (geht über Firefox ja nur mit Seiten auf derselben Domain) gibt es Fehler, wenn ich von dieser geladenen Seite auf Links oder Buttons klicke.
Das Programm gibt einen Fehler aus, macht dann aber trotzdem eine neue Seite mit dem Link auf. Was ich bräuchte wäre, dass der Link in demselben Behälter aufgeht wie die Seite, die ich per Request geladen habe. Gibt es da eine Möglichkeit (evtl. auch auf der angefragten Seite, die kann ich ja beeinflussen) das zu bewerkstelligen? Der Fehler sollte natürlich dann auch nicht mehr auftauchen, wobei ich nicht weiß wieso der überhaupt auftritt, denn die Seite an sich läuft wenn sie nicht aus meiner Testseite aufgerufen wird.
Wäre nett, wenn mir jemand meinen Fehler sagen oder mir bei der Lösung des Problems behilflich sein könnte.
Der Code dazu:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
</head>
<body>
<script language="JavaScript" type="text/javascript">
var xmlHTTP = false;
try{
// FIREFOX etc.
xmlHTTP = new XMLHttpRequest();
} catch (w3c) {
try {
//neues Protokoll für den Internetexplorer
xmlHTTP = new ActiveXObject("Msxml2.XMLHTTP");
} catch(msie) {
try {
//veraltetes Protokoll für den Internetexplorer
xmlHTTP = new ActiveXObject("Microsoft.XMLHTTP");
} catch (msie_alt) {
// wenn alles schief läuft
alert("AJAX kann nicht geladen werden!");
}
}
}
function AsyncResult() {
var target = document.getElementById("Container");
if (xmlHTTP.readyState==4) {
if (xmlHTTP.status==200) {
target.innerHTML = xmlHTTP.responseText;
}
}
}
function DoIt(url) {
if (xmlHTTP) {
xmlHTTP.open('GET', url, true);
xmlHTTP.onreadystatechange=AsyncResult;
xmlHTTP.send(null);
}
}
</script>
<p><br>
<div id="Container">hier soll die Seite angezeigt werden </div>
<button onClick="DoIt('http://localhost/test/internetseite/ajax/ahah.html')">Zeige Seite an!</button>
</p>
</body>
</html>