Magnetarin: Security Error bei new File

Hallo
Ich arbeite gerade an einer Seite mit einem Tutorial für eine Programmiersprache. Dort gibt es eine Kapitel auswahl, wenn der Benutzer ein Kapitel auswählt, möchte ich gerne den Text für das Kapitel, welches in einer .txt Datei gespeichert ist, in eine Textarea schreiben.

Meine Überlegung dazu: .txt öffnen, text rauslesen und dann die value der textarea dem rausgelesen text gleichsetzen.

Meine Javascript function dazu:
function openfile(){
name= document.getElementById("helloWorld").id;
var filename = name.toString()+".txt";
file = new File(filename); // file öffnen
if(file.open("r")==true)
{
length = file.getLenght;
str = file.read(lenght); //text rauslesen
file.close();
document.text.tutorialText.value=str;//value setzen
}
}

Wenn ich nun die function aufrufe dann bekomme ich beim file öffnen einen security error.

Ich habe versucht danach zu googlen und im Forum was zu finden.
Aber irgentwie konnte ich weder herausfinden was genau ein security error ist, noch etwas mein problem betreffend.

Also bin ich hier. Vielleicht könnt ihr mir erklären was ein security error ist und was mein Problem ist.
Danke schon mal für konstruktive Antworten.

  1. file = new File(filename); // file öffnen

    Wie kommst du drauf, dass JS auf das lokale Filesystem des Client zugreifen kann?

  2. Hallo Magnetarin,

    du kannst per HTTP-Request (AJAX) lesend auf das lokale Filesystem zugreifen. Allerdings spielen da nicht alle Browser gleich mit. Oder soll die Seite nur online benutzt werden?

    name= document.getElementById("helloWorld").id;
    var filename = name.toString()+".txt";

    Herr Schulze, wie heißen Sie? SCNR.

    Was willst du mit diesem Konstrukt erreichen? Du suchst nach einem Element mit einer bestimmten ID, ließt dann die ID aus und wandelst diesen String dann in einen String um??? Warum nicht var filename = "helloWorld.txt";

    Gruß, Jürgen

    1. du kannst per HTTP-Request (AJAX) lesend auf das lokale Filesystem zugreifen.

      Wie denn das? Das wär ja schrecklich. Dann kann ich auch per AJAX das gelesene irgendwohin schicken.

      1. Hallo Encoder,

        du kannst per HTTP-Request (AJAX) lesend auf das lokale Filesystem zugreifen.
        Wie denn das? Das wär ja schrecklich. Dann kann ich auch per AJAX das gelesene irgendwohin schicken.

        wegen der SOP muss die aufrufende Seite natürlich auch vom lokalen Filesystem kommen.

        Gruß, Jürgen

        1. wegen der SOP muss die aufrufende Seite natürlich auch vom lokalen Filesystem kommen.

          Hm ok aber die kann dann ja trotzdem noch ne Verbindung irgendwohin aufmachen und das gelesene verschicken?

          1. Hallo Encoder,

            wegen der SOP muss die aufrufende Seite natürlich auch vom lokalen Filesystem kommen.
            Hm ok aber die kann dann ja trotzdem noch ne Verbindung irgendwohin aufmachen und das gelesene verschicken?

            aber dazu musst du die Seite erst mal auf deinen Rechner laden und dann vom Filesystem aufrufen.

            Ich lade z.B. per HTTP-Request Daten aus einer Datei und stelle sie dann in Google Maps dar, das funktioniert auch vom lokalen Filesystem. Nur der Chrome verweigert den Zugriff.

            Gruß, Jürgen

            1. Hallo Jürgen,

              Ich lade z.B. per HTTP-Request Daten aus einer Datei und stelle sie dann in Google Maps dar, das funktioniert auch vom lokalen Filesystem. Nur der Chrome verweigert den Zugriff.

              das ist bekannt. Das hat sich damals ändern lassen. :-)

              Freundliche Grüße

              Vinzenz

            2. aber dazu musst du die Seite erst mal auf deinen Rechner laden und dann vom Filesystem aufrufen.

              Auch dazu kriegt man bestimmt viele User. Manche Seiten speicher ich mir ab, damit ich sie offline ansehen kann.

              1. Hallo Encoder,

                wir können lange diskutieren, ob HTTP-Requests auf das lokale Filesystem sinnvoll oder gar gefährlich sind. Ich habe es getestet, und es geht. Googles Chrome sträubt sich, der IE warnt vor Javasscript, IE 9 kann es nur mit ActiveXObject obwohl er auch XMLHttpRequest unterstützt, Safari, Opera und FF machen es.

                Ob man ein Projekt darauf aufbaut, sollte man sich natürlich gut überlegen; wer weiß, was beim nächsten Update abgeschaltet wird.

                Gruß, Jürgen

  3. Ich arbeite gerade an einer Seite mit einem Tutorial für eine Programmiersprache. Dort gibt es eine Kapitel auswahl, wenn der Benutzer ein Kapitel auswählt, möchte ich gerne den Text für das Kapitel, welches in einer .txt Datei gespeichert ist, in eine Textarea schreiben.

    Eine primitive Lösung, wenn die umgebende Datei nicht zu umfangreich ist: Die ganze Seite samt Textarea mit passendem Inhalt neu darstellen, siehe Beispiel. (Bei mir ist der Inhalt aber jedesmal eine kleine html-Datei.)

    Gruß H.

    1. Eine primitive Lösung, . . .

      Sorry, das war zu hastig, ich benutze *Iframe*, nicht *Texterea*.

      Gruß H.

  4. Hi
    Danke für eure Antworten.
    Tut mir leid das ich erst jetzt schreibe aber ich war gestresst.
    Ich verwende jetzt ein Iframe statt der Textarea.
    Danke nochmals für die Antworten.