JavaScript Mehrere txt-Dateien in Variable

SubNatural

Commander
Registriert
Jan. 2009
Beiträge
2.870
Hallo,

ich wurstel mich gerade ein wenig durch JavaScript, aber da ich nie damit programmiert habe, wollte ich fragen, ob jemand Ahnung hat, wie ich mehrere Txt-dateien in eine Variable hineinbekommen kann.
Ich habe schon diesen Code gefunden, aber damit kann man nur eine Txt-datei in eine Variable einlesen(soweit ich das verstanden habe).
Code:
        <script type="text/javascript">
            $(document).ready(function(){
                $('#inserttext').load('test.txt');            
            });
        </script>

Aber eigentlich wollte ich eine Variable Text erstellen, in die man mehrere Texte einliest und diese jeweils durch ein \n trennt.
Ich brauche dafür eine Vorschleife(da es maximal 10 Txt-Datein sind)
ich hatte mir das i-wie so vorgestellt(Code funktioniert nicht)
Code:
<script type="text/javascript">
    Inhalt = new Array(10);
    for (var i = 0; i < 10; i++) {
        Array[i] = "Pfad zur Textdatei";
        if (Inhalt[i] == undefined) {
        } else {
            alert(Inhalt[i]);
        }
    }
</script>

Hat jemand eine Ahnung wie ich die Pfade da hineinbekommen?
Also die Txt-dateien sind im Schema
Meldung1.txt; Meldung2.txt etc.
angelegt.

danke Daniel
 
Zuletzt bearbeitet:
Nicht schön, aber sollte gehen.

Code:
<html>
 <body>
   <p id="p1" />
   <p id="p2" />
   ...
   <p id="p10" />
   <script type="text/javascript">
      $(document).ready(function(){
                $('#p1').load('Meldung1.txt');
                $('#p2').load('Meldung2.txt');
                ...
                $('#p10').load('Meldung10.txt');
            });
        </script>
 </body>
</html>

Das erste Beispiel von Dir benutzt JQuery. Das mußt Du also in Deine Webseite einbinden. Dein zweites Beispiel macht in der For-Schleife irgendwie gar nichts und referenziert auch eine nicht deklarierte Variable "Array".

In meinem Code definiere ich 10 Absätze und füge in der DocumentReady-Funktion den Inhalt der 10 Textdateien ein. Ob der Aufruf so, wie von Dir gefunden funktioniert, weiß ich auch nicht, da ich das noch nie gebraucht habe. Generell ist das aber wie oben gezeigt der Weg. Hübscher machen solltest Du selber können.
 
Zuletzt bearbeitet:
Code:
<script type="text/javascript">
    Inhalt = new Array(10);
    for (var i = 0; i < 10; i++) {
        Array[i] = "Pfad zur Textdatei";
        if (Inhalt[i] == undefined) {
        } else {
            alert(Inhalt[i]);
        }
    }
</script>
Array sollte natürlich Inhalt sein.

Mhh ich hab deinen Code so übernommen, aber passieren tut leider nichts.
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Untitled Page</title>
</head>
<body>
   <p id="p1" />
   <p id="p2" />
   <p id="p3" />
   <p id="p4" />
   <p id="p5" />
   <p id="p6" />
   <p id="p7" />
   <p id="p8" />
   <p id="p9" />
   <p id="p10" />
   <script type="text/javascript">
       $(document).ready(function () {
                $('#p1').load('Test1.txt');
                $('#p2').load('Test2.txt');
                $('#p3').load('Test3.txt');
                $('#p4').load('Test4.txt');
                $('#p5').load('Test5.txt');
                $('#p6').load('Test6.txt');
                $('#p7').load('Test7.txt');
                $('#p8').load('Test8.txt');
                $('#p9').load('Test9.txt');
                $('#p10').load('Test10.txt');

            });
        </script>
</body>
</html>
Die Txt-dateien befinden sich, wie die HTML-Seite auf dem Desktop.

Mein kompletter Code, sieht gerade so aus, aber ließt halt noch keine Txt-Dateien aus, sondern man muss die Variablen selbst beschreiben
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Untitled Page</title>
</head>
<body>
<script type="text/javascript">
    //alert("hallo");
    Inhalt = new Array(100);
    Inhalt[1] = "1";
    Inhalt[2] = "2";
    Inhalt[3] = "3";
    Inhalt[4] = "4";
    for (var i = 0; i < 10; i++) {
        if (Inhalt[i] == undefined) {
            //hier wirds nicht gemacht, also werden nur beschriebene Vars angezeigt
        } else {
            alert(Inhalt[i]);
        }
    }
    
</script>
</body>
</html>
 
Zuletzt bearbeitet:
Du kannst dann in einer Schleife alle Werte der p's einlesen mit

HTML:
var inhalt;
inhalt = inhalt + $("#p1").html();
inhalt = inhalt + $("#p2").html();
inhalt = inhalt + $("#p3").html();
inhalt = inhalt + $("#p4").html();
inhalt = inhalt + $("#p5").html();
inhalt = inhalt + $("#p6").html();
inhalt = inhalt + $("#p7").html();
inhalt = inhalt + $("#p8").html();
inhalt = inhalt + $("#p9").html();
inhalt = inhalt + $("#p10").html();


P.S. Dein Beispiel über mir sollte auf jeden Fall schon die Textdatei einlesen. Hast du JQuery denn eingebunden?
 
Dir fehlen anscheinend grundlegende Kenntnisse. Schau Dir mal die Doku von JQuery an: http://docs.jquery.com/How_jQuery_Works

Mein Code konnte nicht funktionieren, da

1. Kein JQuery-SourceDatei referenziert war.
2. Die URL zu den Textdateien auch nicht stimmen konnte.

Der Einsatz der DocumentReady-Funktion in Deinem Beispiel ist leider völlig falsch.

@chriz0101: Er will nicht bestehende Absätze auslesen, sondern hat Textdateien, die er in einer Webseite untereinander darstellen will.
 
Zuletzt bearbeitet:
Natürlich fehlen mir Grundkenntnisse, ich habe damit ja noch nie programmiert, aber in C# bzw. Java war das eine Sache von ein paar Minute, von daher dachte ich, dass es hier genauso wäre.
Das Problem ist, dass die Html-Datei nachher in Sharepoint muss, d.h. ich kann keine jQuery-datei anlegen.
 
Zuletzt bearbeitet:
Du mußt JQuery als JavaScript-Quellcodedatei referenzieren, damit Du die Funktionen von JQuery benutzen kannst. Das ist genauso, wie das Einfügen einer Referenz auf die zu benutzende Bibliothek wie in jeder anderen Programmiersprache.

Ich habe es gerade auch einmal versucht und kann die Dateien auch nicht laden.

Code:
<html>
 <head>
	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
 </head>
 <body>
 
   <p id="p1">P1: <p>
       
   <script type="text/javascript">
      $(document).ready(function(){
                // Erster Versuch
                 $('#p1').load('Meldung1.txt');         
                // Zweiter Versuch
	         $.get('Meldung1.txt', function(){
			alert("Erfolgreich!");
		 });       			
            });
        </script>
 </body>
</html>

Welche Programmiersprachen beherrscht Du bis jetzt? Was weißt Du über Webentwicklung?
 
Bis jetzt Java und C#.
Webapplets per Java habe ich schonmal gemacht, aber ist schon ewig und drei Jahre her.
---------
Code:
<html>
    <head>
        <title>Text-Datei in HTML</title>
        <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.1.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function(){
                $('#inserttext').load('test.txt');            
            });
        </script>
    </head>
    <body>
        <div>Header</div>
        <div id="inserttext">
        </div>
    </body>
</html>
Dieser Code zeigt den Inhalt der Txt als text auf einer HP an, kann ich irgendetwas mit der id="inserttext"(was ist das eigentlich? Eine Variable?) machen?
Also ich meine, ob ich den dort eingespeicherten Text irgendwie in eine Var bekomme.
 
Zuletzt bearbeitet:
Der in Post #7 stehende Code funktioniert doch. Allerdings bei mir nur im IE und im FF. In Google Chrome funktioniert er nicht. Wenn ich heute abend Zeit finde, kann ich das nochmal untersuchen.
Ergänzung ()

Erzähl mal etwas mehr über Deine aktuelle Aufgabe! Alles, was Dir einfällt. Was ist das Ziel und in welcher Technologie soll das umgesetzt werden?
 
Meine Aufgabe:
Ich soll Popups in sharepoint öffnen. Diese sollen den Text einer Txt-Datei(oder anderen für DAUs verständlichen Dateien) enthalten.
Dazu habe ich in Sharepoint einen Inhalt-Editor-Webpart. Dieser kann HTML und XML.
Das wär's eigentlich schon
 
Hm, da die meisten Webbrowser Popup-Blocker haben, würde ich die Idee mit den Popups ganz schnell wieder vergessen. Davon abgesehen, daß Popups der letzte Mist sind. Oder kennst Du seriöse Webseiten oder Webanwendungen, die das heute noch einsetzen?

Wenn es also geht, würde ich das ohne Popups machen. Wenn es aber unbedingt ein Popup sein muß, dann ist in dem Kontext Microsoft SharePoint JavaScript und AJAX einzusetzen nicht unbedingt der richtige Weg.

Wenn ich mich recht erinnere, basiert die SharePoint-Entwicklung auf ASP.NET. In diesem Zusammenhang gibt es einen Page-Lifecycle. Die einfachste Möglichkeit, wäre, wenn Du im "Page_Load()" oder "Page_PreRender()" Deinem Webpart die notwendigen Textdaten zuweist.

Der Versuch, nach dem Laden der Webseite in einem Popup-Fenster mit Hilfe von JavaScript das DOM der Webseite zu manipulieren, widerspricht den Grundsätzen, wie für ASP.NET entwickelt werden soll. Das sollte nur in extremen Ausnahmefällen gemacht werden, da Dein Code dadurch schwerer zu warten ist.
 
Zuletzt bearbeitet:
Ruheliebhaber schrieb:
@chriz0101: Er will nicht bestehende Absätze auslesen, sondern hat Textdateien, die er in einer Webseite untereinander darstellen will.


Mein Punkt war auf deinem Vorherigen Post bezogen, du hast die Textdateien in Absätze gelesen. Will er sie aber wirklich in einer Variable (erster Post) müsste er danach noch Codestück ausführen.
 
Zurück
Oben