URL - innerHTML - Textbox

deepgreen

Erfahrenes Mitglied
Servus,

Ich wüsste jetzt nicht nach welchem Keyword ich suchen könnte um euch nicht zu belästigen.....

Ich würde gerne in JS eine HTML-Datei(anderer Server) in einer Variabel oder Textbox einlesen.

Motto:
var xHTML = URL("http://serverxy.com/x.html");

Könnt ihr mir da irgendwelche Hinweise geben?
 
Für sowas empfehle ich dir AJAX, allerdings kann man damit nur den eigenen Server auslesen auf dem das Script läuft.
(AJAX:Getting Started):
Der zweite Parameter ist die URL der angeforderten Seite. Aus Sicherheitsgründen können keine Seiten auf 3rd-party Domains angefordert werden. Es muss sichergestellt werden, dass der exakte Domainname auf allen Seiten benutzt wird; andernfalls bekommt man einen 'permission denied'-Fehler beim Aufruf von open(). Ein beliebter Fallstrick ist der Aufruf einer Seite mittels 'domain.tld', wobei die gewünschte Seite jedoch 'www.domain.tld' lautet.

Deshalb die Idee:
auf deinem Server erstellst du eine Datei lesen.php, die den fremden Server ausliest und anzeigt.

PHP:
<?php
echo readfile('http://www.server.de/file.html');
?>

Das rufst du dann mit AJAX ab (s. AJAX: Getting started):

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <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) {
                        //Textfeld mit Wert füttern:
                        document.getElementById('textfeld').innerHTML=http_request.responseText;
                    } else {
                        alert('There was a problem with the request.');
                    }
                }

            }
        </script>
    </head>
    <body>
        <span
            style="cursor: pointer; text-decoration: underline"
            onclick="makeRequest('lesen.php')">
                Make a request
        </span>

    </body>
</html>

Hilft dir das weiter?
 
Zuletzt bearbeitet:
Sorry, aber das hilft mir nicht weiter. PHP oder andere Script-Sprachen sind kein Problem, ich möchte das Ganze mit Javascript hinbekommen, sollte ich wirklich zu blöd dafür sein, dann werde ich auf PHP oder ASP umsteigen.
 
Also wenn ich jetzt nicht irgendeine Neuerung verpaßt habe, würde ich sagen, das geht mit reinem JavaScript nicht.
Einzige Möglichkeit sind eine Art "Pseudo-Includes" (davon hab ich mal gelesen) bei denen die einzufügende Datei allerdings eine .js sein muß und der Inhalt dann per document.write(...) ausgegeben wird. Sonderlich komfortabel stelle ich mir das aber nicht vor.
 
Ich kann nur bestätigen: Rein mit Javascript ist es nicht mögliche externe Dateien auszulesen. Dafür bauchst du auf jeden Fall eine serverseitige Sprache. Du schreibst ein php-Skript, dass die URL zu deiner Datei als Get-Variable bekommt, die Datei zur URL dann ausliest und den ihnalt als js-Script ausgibt. Das ist die einfachste Möglichkeit.
 
So, ich hab jetzt den Link wieder gefunden, wo ich das mal gelesen habe:
http://phpied.com/javascript-include/
Mit den beschriebenen Techniken ist es also durchaus möglich Includes zu simulieren.
Im inkludierten JS könntest Du dann z.B. ein Array mit Content füllen und auf der Hauptseite ausgeben. Wie gesagt, komfortabel ist was anderes aber rein theoretisch ist es möglich.
 

Neue Beiträge

Zurück