Kai Küper: Auf einzelne DOM Element fremder Webseiten zugreifen

Beitrag lesen

Hallo zusammen,

ich versuche von einer fremden Webseite bestimmte Elemente auf einer lokalen Webseite anzeigen zu lassen. Als Test habe ich eine Webseite der Form:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>Titel</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<p>Hallo zusammen</p>
<p>Wie isset denn so</p>
<p>juhuuuuu</p>
</body>
</html>

Nun versuche ich per XMLHttpRequest und http_request.responseXML.documentElement die einzelnen p Elemente und den title auszulesen ... klappt aber leider nicht ... immer lautet der Fehler im Firefox: http_request.responseXML.documentElement has no properties um im IE:
.... ist null oder kein Objekt. :-(

Hoffentlich weis eine Rat!!

Das Skript:

<script type="text/javascript" language="javascript">

var http_request = false;

function makeRequest(url) {

http_request = false;

if (window.XMLHttpRequest) { // Mozilla, Safari,...
                    http_request = new XMLHttpRequest();
                    if (http_request.overrideMimeType) {
                        http_request.overrideMimeType('text/xml');
                    }
                } else if (window.ActiveXObject) { // IE
                    try {
                        http_request = new ActiveXObject("Msxml2.XMLHTTP");
                    } catch (e) {
                        try {
                        http_request = new ActiveXObject("Microsoft.XMLHTTP");
                        } catch (e) {}
                    }
                }

if (!http_request) {
                    alert('Giving up :( Cannot create an XMLHTTP instance');
                    return false;
                }
                http_request.onreadystatechange = alertContents;
                http_request.open('GET', url, true);
                http_request.send(null);

}

function alertContents() {

if (http_request.readyState == 4) {
                    if (http_request.status == 200) {

var xmldoc = http_request.responseXML.documentElement
                        var root_node = xmldoc.getElementsByTagName('p')[0].firstChild.data;
                        alert("root_node1:"+root_node);
                        var root_node = xmldoc.getElementsByTagName('p')[1].firstChild.data;
                        alert("root_node2:"+root_node);
                        var root_node = xmldoc.getElementsByTagName('title')[0].firstChild.data;
                        alert("root_node3:"+root_node);
                          }
                        else {
                          alert("xmldoc ist leer");
                          }

} else {
                        alert('There was a problem with the request.');
                    }
                }

}
</script>

Vielen Dank,

Kai Küper