Henry: Simple Include Möglichkeit mit Javascript

0 53

Simple Include Möglichkeit mit Javascript

Henry
  • includes
  • javascript
  1. 0
    Felix Riesterer
    1. 0
      Henry
      1. 0
        dedlfix
        1. 0
          Henry
          1. 0
            Matthias Apsel
            1. 0
              Henry
              1. 0
                Tabellenkalk
            2. 0
              Rolf b
              1. 0
                Henry
                1. 0
                  Matthias Apsel
          2. 0
            dedlfix
            1. 0

              Simple Include Möglichkeit mit Javascript (teilw. gelöst)

              Henry
              1. 1
                JürgenB
                1. 0
                  Henry
                  1. 0
                    Henry
                    1. 0
                      JürgenB
                      1. 0
                        Henry
                        1. 0
                          JürgenB
                          1. 0
                            Henry
                            1. 0
                              dedlfix
                              1. 0
                                Henry
                                1. 0
                                  dedlfix
                                2. 0
                                  TS
                                  • https
                                  • javascript
                                  1. 0
                                    dedlfix
                                    1. 0
                                      TS
                                  2. 0
                                    Henry
      2. 0
        Felix Riesterer
        1. 0
          Henry
          1. 0
            Rolf b
          2. 0
            Gunnar Bittersmann
            1. 0
              Henry
              1. 0
                Gunnar Bittersmann
                1. 0
                  Henry
                  1. 2
                    JürgenB
                    1. 0
                      Henry
                  2. 0
                    Felix Riesterer
                    1. 0
                      Henry
                      1. 1
                        Gunnar Bittersmann
                  3. 2
                    Tabellenkalk
                    1. 0
                      Henry
                      1. 0
                        Auge
                        1. 0
                          Henry
                      2. 0
                        Tabellenkalk
                      3. 1
                        dedlfix
                      4. 0
                        Gunnar Bittersmann
                        1. 0
                          Henry
                          1. 0
                            Gunnar Bittersmann
                            1. 0
                              Henry
                              1. 0
                                dedlfix
                              2. 2
                                Gunnar Bittersmann
    2. 0
      dedlfix
      • includes
      • php
  2. 2
    Gunnar Bittersmann

Hallo,

ich suche jetzt schon eine Weile nach einer Include-Möglichkeit von externen Dateien(innerhalb der gleichen Domain) durch JS. Ob das jetzt sinnvoll ist oder nicht steht dabei gar nicht zur Debatte, es geht mir nur um den Lerneffekt der Umsetzbarkeit.

Ansprüche an mich daran:

  • keine SSI, PHP, Jquery oder sonstwas für Hilfen
  • kleines Script mit wenigen Zeilen
  • Einmal integriert, so leicht aufzurufen wie PHP-Alternativen zb. jsinc("test.html");

Daher, bevor ich jetzt noch lange suche, wäre es schön zu erfahren, wenn die Suche zwecklos wäre, weil grundsätzlich nicht machbar.

Daher die Frage: Machbar oder nicht?

Gruss Henry

  1. Lieber Henry,

    Du kannst in JavaScript nicht einfach ein anderes Script an der Stelle einfügen. Du kannst lediglich ein anderes Script einbinden und vom Browser laden lassen.

    function loadScript (url) {
      var l = document.createElement("script");
      l.scr = url;
      document.getElementsByTagName("head")[0].appendChild(l);
    }
    

    In PHP ist folgendes möglich, in JavaScript aber nicht:

    var $a = 'Hallo ';
    include ('b.php'); // $b = 'Welt!';
    echo $a,$b; // Hallo Welt!
    

    Liebe Grüße,

    Felix Riesterer.

    1. Hallo Felix,

      Du kannst in JavaScript nicht einfach ein anderes Script an der Stelle einfügen. Du kannst lediglich ein anderes Script einbinden und vom Browser laden lassen.

      nein, so wars nicht gemeint. Es geht mir darum nur einfache Html- oder Textseiten bei Bedarf einzubinden, keine externen Scripte.

      Gruss Henry

      1. Tach!

        Du kannst in JavaScript nicht einfach ein anderes Script an der Stelle einfügen. Du kannst lediglich ein anderes Script einbinden und vom Browser laden lassen.

        nein, so wars nicht gemeint. Es geht mir darum nur einfache Html- oder Textseiten bei Bedarf einzubinden, keine externen Scripte.

        Schau dir die Lösung mal genauer an. Das Javascript wird geladen, indem HTML ins DOM eingefügt wird. Genauso kannst du anderes HTML ins DOM einfügen. Wenn das noch nicht vorliegend ist, kannst du es per Ajax besorgen.

        dedlfix.

        1. Hallo,

          Schau dir die Lösung mal genauer an. Das Javascript wird geladen, indem HTML ins DOM eingefügt wird. Genauso kannst du anderes HTML ins DOM einfügen. Wenn das noch nicht vorliegend ist, kannst du es per Ajax besorgen.

          das ist ja genau meine Frage, dieses "andere Html", also extern. Da müsste ich ja erst mal drauf zugreifen können. Ich weiss aber auch, offen gesagt, nicht genau was Felix mit "l.scr = url;" meint.

          Ajax oder andere Hilfsmittel wären keine Option.

          Gruss Henry

          1. Hallo Henry,

            Ich weiss aber auch, offen gesagt, nicht genau was Felix mit "l.scr = url;" meint.

            Dann hast du also nur sehr wenig Ahnung von JavaScript?

            Ajax oder andere Hilfsmittel wären keine Option.

            Warum?

            Bis demnächst
            Matthias

            --
            Rosen sind rot.
            1. Hallo Matthias,

              Ich weiss aber auch, offen gesagt, nicht genau was Felix mit "l.scr = url;" meint.

              Dann hast du also nur sehr wenig Ahnung von JavaScript?

              Suchmaschinen offensichtlich auch nicht

              Ajax oder andere Hilfsmittel wären keine Option.

              Warum?

              Siehe Ausgangsfrage.

              Gruss Henry

              1. Hallo,

                Ajax oder andere Hilfsmittel wären keine Option.

                Warum?

                Siehe Ausgangsfrage.

                Und schon drehen wir uns im Kreis…

                Gruß
                Kalk

            2. Dann hast du also nur sehr wenig Ahnung von JavaScript?

              Suchmaschinen offensichtlich auch nicht (Bing-Link)

              Es war ein Tippfehler. Das Property heißt src (Source), nicht scr, und gehört zum HtmlScriptElement Objekt.

              Wer JavaScript kennt, weiß, dass zum HTML-Element Xxx die Javascript-Klasse HtmlXxxElement gehört. Daher war die Rückfrage zur JavaScript-Kenntnis durchaus berechtigt; mit dieser Kenntnis hätte man den Tippfehler identifizieren können.

              Rolf

              1. Hallo Rolf,

                Es war ein Tippfehler. Das Property heißt src (Source), nicht scr, und gehört zum HtmlScriptElement Objekt.

                ah ok. Dennoch, habe das mal umgestrickt um zu sehen ob das geht:

                <button onclick="loadscript()">Inhalt aufrufen</button>
                
                <script>
                
                function loadScript () {
                  var l = document.createElement("div");
                  l.src = "seite2.html";
                  document.getElementById("main").appendChild(l);
                }
                </script>
                
                <div id="main">xxx</div>
                

                nö, so einfach leider nicht ;-(

                Gruss Henry

                1. Hallo Henry,

                  nö, so einfach leider nicht ;-(

                  div-Elemente haben keine src-Attribute.

                  Bis demnächst
                  Matthias

                  --
                  Rosen sind rot.
          2. Tach!

            Ajax oder andere Hilfsmittel wären keine Option.

            Na dann gehts nicht, browsergesteuert.

            dedlfix.

            1. Hallo,

              Ajax oder andere Hilfsmittel wären keine Option. Na dann gehts nicht, browsergesteuert.

              Vielleicht irrst Du dich. Ich glaube doch, dass es geht.

              Dazu benötige ich aber etwas, was seltsamerweise nicht auf Selfhtml-Wiki zu finden ist, die Eigenschaft "contentWindow".

              Der Grundgedanke: Inhalt anderer Seite in Iframe laden ohne zu zeigen, auslesen mit contentWindow und dann im aktuellen Dokument nach Belieben platzieren.

              Und das geht auch schon fast, kleines Problem dabei noch muss link zweimal anklicken, aber lässt sich bestimmt auch noch beheben. Nur, grundsätzlich geht's wohl so, zumindest motiviert mich das weiter zu tüfteln.

              <!DOCTYPE html>
              <html>
              <head>
              <title>JSINC</title>
              <meta charset="UTF-8">
              
              </head>
              <body>
              
              <a href="index.html">HOME</a>
              <a onclick="jsinc('2.html');" href="#">seite2</a>
              <a onclick="jsinc('3.html');" href="#">seite3</a>
              
              <div id="box">
               <h1>JSINC STARTSEITE</h1>
              </div>
              
              <iframe id="ifr" src="3.html" style="display: none;"></iframe>
              
              <script type="text/javascript">
              function jsinc(xurl)
              {
              
                  var xifr = document.getElementById("ifr");
                  xifr.src=xurl;
                  var xcont = document.getElementById("ifr").contentWindow.document;
                  var newcont = xcont.getElementsByTagName('body')[0].innerHTML;   // wenn gezielt aus HTML
                  // var newcont = xcont.innerText;
              
                  alert(newcont);
              
                 document.getElementById("varcont").innerHTML=newcont;
              }
              
              </script>
              
              <div id="varcont"></div>
              
              </body>
              </html>
              
              

              Gruss Henry

              1. Hallo Henry,

                du solltest jetzt doch mal verraten, was du gegen HTTP-Request bzw. Ajax hast, und warum du jetzt auch noch versuchst, sowas nachzubasteln.

                Gruß
                Jürgen

                1. Hallo Jürgen,

                  du solltest jetzt doch mal verraten, was du gegen HTTP-Request bzw. Ajax hast, und warum du jetzt auch noch versuchst, sowas nachzubasteln.

                  dagegen habe ich gar nichts. Es ist ja auch nicht so, dass die gesuchte Methode dann auch wirklich einsetzen will, sondern nur die Machbarkeit wissen wollte um dann abschätzen zu können ob so was vielleicht doch nutzbar wäre bzw. Ableitungen davon. Also es ist eher der Reiz daran, wie eben Rätsel lösen und für mich hat so was dann wie eine Baugrube mit Kran ausbuddeln oder geht's auch ohne Kran(naja viell. nicht das beste Beispiel, aber vermutlich weißt du was ich damit meine 😉

                  Gruss Henry

                  1. Ach ja kleiner Nachtrag noch:

                    Mein Konstrukt funktioniert auch lokal ohne Server/Internet, während XMLHttpRequest daran scheitert.

                    Gruss Henry

                    1. Hallo

                      Firefox, Safari und ältere IEs unterstützen Http-Requests auch lokal.

                      Gruß
                      Jürgen

                      1. Hallo Jürgen,

                        Firefox, Safari und ältere IEs unterstützen Http-Requests auch lokal.

                        hmmm ok, aber was mache ich dann falsch?

                        <!DOCTYPE html>
                        <html>
                        <body>
                        
                        <h2>Using the XMLHttpRequest Object</h2>
                        
                        <div id="demo">
                        <button type="button" onclick="loadXMLDoc()">Change Content</button>
                        </div>
                        
                        <script>
                        function loadXMLDoc() {
                          var xhttp = new XMLHttpRequest();
                          xhttp.onreadystatechange = function() {
                            if (this.readyState == 4 && this.status == 200) {
                              document.getElementById("demo").innerHTML =
                              this.responseText;
                            }
                          };
                          xhttp.open("GET", "test2.html", true);
                          xhttp.send();
                        }
                        </script>
                        
                        </body>
                        </html>
                        

                        Das funktioniert bei mir (IE11) erst, wenn ich die Seite online oder über eigenen Server(also http://...) laufen lasse und nicht local(c:\test\labor\jsinc\testjsinc.html).

                        Gruss Henry

                        1. Hallo,

                          lokal kommt kein Status 200. Ich frage daher zusätzlich Status 0 ab.

                          Gruß
                          Jürgen

                          1. lokal kommt kein Status 200. Ich frage daher zusätzlich Status 0 ab.

                            Also zb. so? ...if (this.readyState == 4 && this.status == 200 && this.status == 0) {....

                            Nein, geht auch nicht. Selbst wenn ich die komplette IF-Anweisung rausnehme kommt nichts.

                            lg.

                            1. Tach!

                              Also zb. so? ...if (this.readyState == 4 && this.status == 200 && this.status == 0) {....

                              Der Status kann nicht 0 UND 200 sein. Er kann aber 0 ODER 200 sein.

                              dedlfix.

                              1. ...if (this.readyState == 4 && this.status == 200 && this.status == 0) {....

                                Der Status kann nicht 0 UND 200 sein. Er kann aber 0 ODER 200 sein.

                                ups 😉 Klar, zu schnell getextet this.status == 200 || this.status == 0

                                ändert aber natürlich auch nichts.

                                lg.

                                1. Tach!

                                  ...if (this.readyState == 4 && this.status == 200 && this.status == 0) {....

                                  Der Status kann nicht 0 UND 200 sein. Er kann aber 0 ODER 200 sein.

                                  ups 😉 Klar, zu schnell getextet this.status == 200 || this.status == 0

                                  ändert aber natürlich auch nichts.

                                  Beachte die Operatorenrangfolge, && bindet stärker als ||.

                                  dedlfix.

                                2. Hello,

                                  was zeigen denn die Kosole und die Netzwerkhistorie?
                                  Was sagen die Logs auf dem Webserver?

                                  Wann kommt denn Überhaupt ein HTTP-Status 0? Gibts den überhaupt?

                                  Liebe Grüße
                                  Tom S.

                                  --
                                  Es gibt nichts Gutes, außer man tut es
                                  Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
                                  1. Tach!

                                    Wann kommt denn Überhaupt ein HTTP-Status 0? Gibts den überhaupt?

                                    Wenn kein HTTP im Spiel ist, wie beim lokalen Dateisystem. Siehe weiter oben im Thread.

                                    dedlfix.

                                    1. Hello,

                                      Wann kommt denn Überhaupt ein HTTP-Status 0? Gibts den überhaupt?

                                      Wenn kein HTTP im Spiel ist, wie beim lokalen Dateisystem. Siehe weiter oben im Thread.

                                      Ok. Danke.

                                      Liebe Grüße
                                      Tom S.

                                      --
                                      Es gibt nichts Gutes, außer man tut es
                                      Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
                                  2. Hallo Tom,

                                    was zeigen denn die Kosole und die Netzwerkhistorie?

                                    Also der Debugger(F12) bringt eine Meldung(wenn local):

                                    xhttp.open("GET", "test2.html", true);

                                    *** Zugriff verweigert ***

                                    xhttp.send();

                                    Was sagen die Logs auf dem Webserver?

                                    Keine Ahnung, aber eigentlich auch egal, weil da funktioniert es ja problemlos.

                                    Gruss Henry

      2. Lieber Henry,

        Es geht mir darum nur einfache Html- oder Textseiten bei Bedarf einzubinden, keine externen Scripte.

        nun gut, dann beschreibe ich diesen Beispielfall:

        Datei nav-include.html

        <!doctype html>
        <html>
          <head>
            <meta charset="utf-8">
            <title>Navi für meine Seite</title>
          </head>
          <body>
            <nav>
              <h2>Navigation</h2>
              <ul>
                <li><a href="./index.html">Home</a></li>
                <li><a href="./impressum.html">Impressum</a></li>
              </ul>
            </nav>
          </body>
        </html>
        

        Datei impressum.html

        <!doctype html>
        <html>
          <head>
            <meta charset="utf-8">
            <title>Impressum meiner Seite</title>
          </head>
          <body>
            <main>
              <h1>Impressum</h1>
              <p>Anbieter dieser Website:</p>
              <ul>
                <li>Max Mustermann</li>
                <li>Hauptstraße 123</li>
                <li>D-12345 Musterstadt</li>
              </ul>
              <p>Meine Website speichert einen Cookie in Ihrem Browser.
                 Wenn Sie damit nicht einverstanden sind, besuchen Sie
                 meine Seite mit entsprechend konfigurierten
                 Browsern-Programmen. Allerdings wird dann das eine oder
                 andere Bequemlichkeitsfeature nicht wie erwartet
                 funktionieren!
              </p>
            </main>
          </body>
        </html>
        

        Wenn jetzt klar wäre, wo genau die Datei nav-include.html in das Dokument von impressum.html eingefügt werden soll, und ob sie in Gänze oder nur ausgewählte Teile davon eingefügt werden sollen, könnte man für diese Datei ein passendes JavaScript schreiben. Man könnte z.B. die zu includierende Datei auf den Inhalt ihres <body> beschränken und diesen Inhalt ans Ende des <body> von impressum.html einfügen. Aber wie sieht es mit anderen Inhalten aus, die vielleicht an eine ganz besondere Stelle im Dokument eingefügt werden sollen? Wie sorgst Du im Zieldokument dafür, dass Dein JavaScript weiß, welche Inhalte wohin gehören?

        Das Ganze bedeutet aber auch, dass das Zusammenfügen der Inhalte erst im Browser passiert und nicht schon auf dem Server. Das ist insofern von Bedeutung, als dass für das vollständige Anzeigen des reinen Dokumentinhalts mehr als nur ein HTTP-Request vom Browser ausgehen muss. Dazu muss der Browser auch entsprechend JavaScript nutzen dürfen (hat fast niemand abgeschaltet) und Deinen JavaScript-Code 100%ig verstehen.

        Es gibt durchaus sinnvolle Szenarien, in denen eine solche Vorgehensweise einen Sinn hat (siehe Lazy Loading), aber für den von mir beschriebenen Fall halte ich es für Unsinn.

        Liebe Grüße,

        Felix Riesterer.

        1. Hallo Felix,

          nun gut, dann beschreibe ich diesen Beispielfall:

          ... den ich noch mal ändere:

          Datei nav-include.html: *ohne HTML Gerüst, könnte auch nur Text sein....

          
          <h2>Navigation</h2>
          

          Datei impressum.html

          <!doctype html>
          <html>
          <head>
          <meta charset="utf-8">
          <title>Impressum meiner Seite</title>
          </head>
          <body>
          
          <button onclick="jsinc('nav-include.html');">Seite laden</button>
          
          <main id="xmain">
            <h1>Impressum</h1>
            <p>Anbieter dieser Website:</p>
          </main>
          
          </body>
          </html>
          
          

          Wenn jetzt klar wäre, wo genau die Datei nav-include.html in das Dokument von impressum.html eingefügt werden soll, und ob sie in Gänze oder nur ausgewählte Teile davon eingefügt werden sollen, könnte man für diese Datei ein passendes JavaScript schreiben. Man könnte z.B. die zu includierende Datei auf den Inhalt ihres <body> beschränken und diesen Inhalt ans Ende des <body> von impressum.html einfügen. Aber wie sieht es mit anderen Inhalten aus, die vielleicht an eine ganz besondere Stelle im Dokument eingefügt werden sollen? Wie sorgst Du im Zieldokument dafür, dass Dein JavaScript weiß, welche Inhalte wohin gehören?

          Genau, das sind alles die Fragen die ich mir stelle. Also dachte ich an sowas: *nur symbolisch

          <script>
          function jsinc(toinc)
          {
          externinhalt = LadeInhaltvon(toinc);
          document.getElementById("xmain").innerHTML = externinhalt;
          }
          <script>
          

          Mein eigentliches Problem ist somit die externe Seite und den entsprechenden Zugriff auf deren Inhalt.

          Gruss Henry

          1. Also, was Du da beschreibst, IST ein asychroner, vom Browser angestoßener Zugriff, und damit letztlich Ajax oder Fetch.

            Da Du keine Tools nutzen willst, bleibt Dir dann nur das manuelle anprogrammieren der entsprechenden JS APIs.

            Wenn Du allerdings auf EXTERNE SEITEN zugreifen willst, stößt Du auf das Grundsatzproblem der Content Security Policy. Dazu findest Du z.B. was im MDN.

            Rolf

          2. @@Henry

            Genau, das sind alles die Fragen die ich mir stelle. Also dachte ich an sowas: *nur symbolisch

            <script>
            function jsinc(toinc)
            {
            externinhalt = LadeInhaltvon(toinc);
            document.getElementById("xmain").innerHTML = externinhalt;
            }
            <script>
            

            Genau dazu hatte ich dir bereits Beispielcode verlinkt.

            Mein eigentliches Problem ist somit die externe Seite und den entsprechenden Zugriff

            Dein eigentliches Problem scheint zu sein, dass du alle sinnvollen Lösungen ausschließt.

            LLAP 🖖

            --
            “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
            1. Hallo Gunnar,

              Genau dazu hatte ich dir bereits Beispielcode verlinkt.

              Was aber völlig im Gegensatz zu meiner Ausgangsfrage steht. (Ohne Hilfsmittel) Darüber hinaus ist die Seite auf Englisch, was mich jetzt nicht unbedingt davon abhält das zu nutzen, andere Leser dieses Thread vielleicht schon. Aber was mich dann doch außerdem bei deiner verlinkten Seite stört, ist die Tabelle unten, laut der die Browserunterstützung mangelhaft erscheint.

              Mein eigentliches Problem ist somit die externe Seite und den entsprechenden Zugriff

              Dein eigentliches Problem scheint zu sein, dass du alle sinnvollen Lösungen ausschließt.

              Nicht falsch verstehen und danke für deine Mühe, aber sinnvoll != sinnvolles Bemühen

              Gruss Henry

              1. @@Henry

                Was aber völlig im Gegensatz zu meiner Ausgangsfrage steht. (Ohne Hilfsmittel)

                Was meinst du mit „ohne Hilfsmittel“? Du willst ein Bild malen, aber ohne Pinsel? Und wenn man dir sagt, dass du die Farben auch mit den Fingern auftragen kannst, kommst du mit „nee, Farben will ich auch nicht“?

                Darüber hinaus ist die Seite auf Englisch

                Was bei Seiten zur Webentwicklung nichts außergewöhnliches ist. Ich würde alles, was nicht englisch ist, hinsichtlich Korrektheit und Aktualität mit Argusaugen betrachten. (SELFHTML-Wiki eingeschlossen.)

                was mich jetzt nicht unbedingt davon abhält das zu nutzen, andere Leser dieses Thread vielleicht schon.

                Wer ernsthaft Webentwicklung betreiben will, sollte Englisch verstehen.

                Aber was mich dann doch außerdem bei deiner verlinkten Seite stört, ist die Tabelle unten, laut der die Browserunterstützung mangelhaft erscheint.

                Ich hatte dir Can I Use verlinkt, woraus hervorgeht, dass die Browserunterstützung keinesfalls mangelhaft ist.

                Nicht falsch verstehen und danke für deine Mühe, aber sinnvoll != sinnvolles Bemühen

                Vielleicht fangen wir mal mit einer sinnvollen Aufgabenstellung an?

                LLAP 🖖

                --
                “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
                1. Hallo

                  Was aber völlig im Gegensatz zu meiner Ausgangsfrage steht. (Ohne Hilfsmittel)

                  Was meinst du mit „ohne Hilfsmittel“? Du willst ein Bild malen, aber ohne Pinsel? Und wenn man dir sagt, dass du die Farben auch mit den Fingern auftragen kannst, kommst du mit „nee, Farben will ich auch nicht“?

                  ach, und dieses an den Haaren herbeigezogene Beispiel soll auf diesen Thread anwendbar sein? Weiß nicht was an meiner Zielsetzung so abwegig sein soll, zumal ich ja schon bewiesen habe, dass es, trotz mehrheitlichen "Geht nicht Aussagen" eben doch geht.

                  Darüber hinaus ist die Seite auf Englisch

                  Was bei Seiten zur Webentwicklung nichts außergewöhnliches ist. Ich würde alles, was nicht englisch ist, hinsichtlich Korrektheit und Aktualität mit Argusaugen betrachten. (SELFHTML-Wiki eingeschlossen.)

                  Aktualität gut möglich, Korrektheit na ja da gibt's auch auf Englisch genug geschriebenen Blödsinn.

                  was mich jetzt nicht unbedingt davon abhält das zu nutzen, andere Leser dieses Thread vielleicht schon.

                  Wer ernsthaft Webentwicklung betreiben will, sollte Englisch verstehen.

                  Das sehe ich nicht so.

                  Aber was mich dann doch außerdem bei deiner verlinkten Seite stört, ist die Tabelle unten, laut der die Browserunterstützung mangelhaft erscheint.

                  Ich hatte dir Can I Use verlinkt, woraus hervorgeht, dass die Browserunterstützung keinesfalls mangelhaft ist.

                  Ja und das bedeutet kein einziger IE, teilweise Edge, Androidbrowser auch nicht. Jetzt könnte man sagen, der Marktanteil sei ja zugunsten Chrome(warum auch immer diese Datenkrake) und FF, aber wirklich kompatibel nenne ich sowas nicht.

                  Nicht falsch verstehen und danke für deine Mühe, aber sinnvoll != sinnvolles Bemühen

                  Vielleicht fangen wir mal mit einer sinnvollen Aufgabenstellung an?

                  Ich wüsste noch immer nicht was an meiner Anfangsfrage und Zielsetzung so unsinnvoll sein sollte? Und um mal bei deinen bildhaften Vergleichen zu bleiben:

                  Mann geht zum Lackierer und möchte ein rotes Auto. Lackierer hat kein rot und behauptet geht grundsätzlich nicht(nirgendwo), grün wäre aber möglich. Mann will wissen ob rot wirklich nicht geht. Lackierer sagt entrüstet es wäre nicht sinnvoll rot zu nehmen, allein der Gedanke daran wäre abwegig und dumm, niemand würde rot nehmen.

                  Besser wärs gewesen Lackierer hätte gesagt, er fände grün schöner auch wenn eigentlich nichts gegen rot spräche.

                  Aber es gibt Menschen, und derer überraschend viele, für die nur die eigene Meinung das Maß aller Dinge ist.

                  –-----------------------------------------------

                  Ernst Mach(1838-1916): „Die Relativitätstheorie ist genauso ein Hirngespinst wie die Vorstellung, es gäbe Atome.“

                  Lord William Thompson Kelvins(1824-1907): „Diese Strahlen des Herrn Röntgen werden sich als Betrug herausstellen."

                  Western Union Interne Kurzinformation, 1876: "Das Telefon hat zu viele ernsthaft zu bedenkende Mängel für ein Kommunikationsmittel. Das Gerät ist von Natur aus von keinem Wert für uns."

                  Dick Rowe von Decca records(1962) Die Beatles sind zwar nett aber talentlos und die Frisuren sind genauso wenig zeitgemäß wie Gitarrensound

                  Führende Mediziner inkl. Rudolf Virchow, gegen Semmelweiss: Bakterien sind niemals schuld an Krankheiten und Todesfällen

                  .... unendliche Liste ...

                  –-----------------------------------------------

                  1. Hallo,

                    bist du jetzt nicht etwas größenwahnsinnig?

                    Gruß
                    Jürgen

                    1. bist du jetzt nicht etwas größenwahnsinnig?

                      Muss ich mir denn, deiner Meinung nach, die Ignoranz an meiner eigentlichen Frage und die daraus resultierenden arroganten Anmaßungen(...deine Aufgabenstellung ist nicht sinnvoll...solange du nicht genau meine Lösung, die ja eigentlich nichts mit deiner Zielsetzung zu tun hat, akzeptierst...) gefallen lassen?

                      Sorry, aber das entzieht sich meiner Sichtweise.

                      lg.

                  2. Lieber Henry,

                    Weiß nicht was an meiner Zielsetzung so abwegig sein soll, zumal ich ja schon bewiesen habe, dass es, trotz mehrheitlichen "Geht nicht Aussagen" eben doch geht.

                    Du verlässt hier für mich den Rahmen einer ernst geführten Fachdiskussion. Ich klinke mich nach diesem Posting endgültig aus.

                    Wer ernsthaft Webentwicklung betreiben will, sollte Englisch verstehen. Das sehe ich nicht so.

                    Das ist unsachlich, denn Du ignorierst Fakten.

                    Ich wüsste noch immer nicht was an meiner Anfangsfrage und Zielsetzung so unsinnvoll sein sollte?

                    Außer Lazy Loading sehe ich keine sinnvolle Einsatzmöglichkeit. Das Zusammensetzen einer Seite aus Einzelteilen sollte unbedingt serverseitig geschehen. JavaScript "tickt" anders, weshalb es unverhältnismäßig die Komplexität des Dokuments im Browser aufbläht, mehr Datenvolumen verbraucht und die Funktionalität prinzipbedingt gefährdet. Deshalb ist der von Dir studierte Weg einer technischen Lösung zugunsten eines anderen serverseitigen unbedingt zu vermeiden!

                    Da hast Du es: Ich sage nicht, dass es nicht geht, sondern dass Du es vermeiden sollst.

                    Liebe Grüße,

                    Felix Riesterer.

                    1. Hallo Felix,

                      Wer ernsthaft Webentwicklung betreiben will, sollte Englisch verstehen. Das sehe ich nicht so.

                      Das ist unsachlich, denn Du ignorierst Fakten.

                      Ach so und lapidar zu behaupten "Englisch wäre zwingend notwendig" wäre dann wohl faktenbasierend?

                      Ich wüsste noch immer nicht was an meiner Anfangsfrage und Zielsetzung so unsinnvoll sein sollte?

                      Da hast Du es: Ich sage nicht, dass es nicht geht, sondern dass Du es vermeiden sollst.

                      Dennoch haben hier einige behauptet es ginge nicht. Nur, und das ist was ich hier in diesem Forum nicht nachvollziehen kann: In meiner Anfangsfrage habe ich extra explizit geschrieben("...Ob das jetzt sinnvoll ist oder nicht steht dabei gar nicht zur Debatte, es geht mir nur um den Lerneffekt der Umsetzbarkeit...") Das wurde hier konsequent ignoriert. Warum? Darf ein Fragender hier keine eigenen Vorstellungen oder Meinungen haben?

                      lg.

                      1. @@Henry

                        Wer ernsthaft Webentwicklung betreiben will, sollte Englisch verstehen. Ach so und lapidar zu behaupten "Englisch wäre zwingend notwendig" wäre dann wohl faktenbasierend?

                        Das hat niemand behauptet. Wenn du einem die Wörter verdrehst, ist das der Diskussion kaum zuträglich.

                        Dennoch haben hier einige behauptet es ginge nicht.

                        Andere haben dir gezeigt, wie es geht: mit fetch() bzw. AJAX. Du wolltest JavaScript – das ist JavaScript. Aus deinem anschließenden „mit JavaScript, aber ohne JavaScript“ konnte dann niemand schlau werden.

                        LLAP 🖖

                        --
                        “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
                  3. Hallo,

                    .... unendliche Liste ...

                    und da sollen wir jetzt

                    "Henry (2017): Ich hab ne Lösung mit Iframes!"

                    dranhängen?

                    Gruß
                    Kalk

                    1. Hallo,

                      und da sollen wir jetzt

                      "Henry (2017): Ich hab ne Lösung mit Iframes!"

                      dranhängen?

                      versteht wohl keiner was ich damit sagen wollte?

                      Nein, da müsste dran:

                      Einige Selfforum Aktivisten (2017): Ein Fragender hat grundsätzlich keine eigenen Vorstellungen einzubringen, unsere Lösungen sind über alles erhaben und niemals zu kritisieren.

                      Chronik:

                      Ich frage nur nach einer technischen Umsetzbarkeit mit klarer Zielsezung. Simples Javascript, wenige Zeilen Code, sinnvoll oder nicht ist irrelevant.

                      • Beispiel: Habe einen Oldtimer und und frage ob ich irgendwo die Originalreifen kaufen kann, unabhängig davon ob das sinnvoll ist.

                      Zurück bekomme ich fast nur Antworten, natürlich auch gutgemeinte, die nicht auf meine Zielsetzung passen und ständige Angriffe und Belehrungen und die Aussage es würde anders nicht gehen.

                      • Nein, solche Reifen gibt es nicht... Oldtimer sind schlecht hol dir ein modernes Auto... So eine Frage ist schon nicht sinnvoll...

                      Zur eigenen Überraschung finde ich einen Lösungsansatz, auf den nicht mal eingegangen wird um ihn eventuell zu verbessern. ( Wobei mich immer noch interessieren würde, warum contentWindow nicht bei selfhtml zu finden ist).

                      • Wieso soll es die Reifen nicht geben, habe gerade einen anderen Oldtimer damit gesehen?

                      Stattdessen werde ich nun noch mehr attackiert und weiterhin auf nicht gewollte Alternativen verwiesen.

                      • Nur weil ein anderes Auto diese Reifen hat, hast du gefälligst trotzdem unseren Empfehlungen zu folgen, weil das einfach besser ist.

                      OK, nur um wirklich mal einen Vergleich zu haben, teste ich das Ganze auch noch mit einem XMLHttpRequest.

                      • Moderne Reifen drauf, entspricht zwar nicht mehr ganz was ich wollte und sieht auch nicht mehr so passend aus, aber ok, was solls.

                      Nun stellt sich raus, XMLHttpRequest hat einen entscheidenden Nachteil, geht nicht lokal, zumindest nicht bei allen Browsern, wie zb. IE12.

                      • Mit den modernen Reifen werde ich bei einer Oldtimerallye nicht zugelassen.

                      Nun schließt sich der Kreis.

                      • Dann fahr doch bei der Rallye nicht mit, unsere Lösung ist trotzdem immer die einzig Wahre, alles Andere ist nicht "sinnvoll" und auf so was gehen wir nicht ein.

                      ***************×

                      Fazit:

                      Es ist nicht so, dass ich eure Hilfe nicht schätze, sonst wäre ich nicht hier. Aber manchmal schießen hier schon einige übers Ziel hinaus. Versucht bitte mal ab und zu auch mal die Sichtweise des Fragestellers mit einzubeziehen. Zumindest war das, subjektiv betrachtet, hier früher mal so zu Stefan Münz Zeiten.

                      Gruss Henry

                      1. Hallo

                        Chronik

                        Ich frage nur nach einer technischen Umsetzbarkeit mit klarer Zielsezung. Simples Javascript, wenige Zeilen Code, sinnvoll oder nicht ist irrelevant.

                        Mehrere Antwortende geben dir den Hinweis auf Ajax, welches überraschenderweise JavaScript ist, und du willst es nicht nehmen. Was denn nun?

                        Zur eigenen Überraschung finde ich einen Lösungsansatz, auf den nicht mal eingegangen wird um ihn eventuell zu verbessern. ( Wobei mich immer noch interessieren würde, warum contentWindow nicht bei selfhtml zu finden ist).

                        Du meinst diesen deinen „Lösungsansatz“, bei dem du zusätzlichen Inhalt in ein nicht anzuzeigendes iframe lädst, es von dort in ein JavaScript einliest und es dann in das Dokument, in dem der Inhalt im iframe bereits geladen ist, einbaust? Damit führst du mMn deine eigene Forderung, „simples Javascript“ zur Lösung zu benutzen, ad absurdum.

                        Warum nimmst du dann nicht gleich einen iframe? Das Problem, dass Ajax in einigen Browsern nicht bei lokalen Aufrufen funktioniert, würde damit erst gar nicht auftreten.

                        Tschö, Auge

                        --
                        Wenn man ausreichende Vorsichtsmaßnahmen trifft, muss man keine Vorsichtsmaßnahmen mehr treffen.
                        Toller Dampf voraus von Terry Pratchett
                        1. Hallo,

                          Mehrere Antwortende geben dir den Hinweis auf Ajax, welches überraschenderweise JavaScript ist, und du willst es nicht nehmen. Was denn nun?

                          Ok, hätte ich vielleicht noch klarer definieren sollen, was ich mit "simplem Javascript" meinte aber dürfte nach einigen Posts klar gewesen sein.

                          ...Inhalt im iframe bereits geladen ist, einbaust? Damit führst du mMn deine eigene Forderung, „simples Javascript“ zur Lösung zu benutzen, ad absurdum.

                          Simple in Form von altbackenem JS, 100% Browserkompatibel, minimalster und für Laien nachvollziehbarer code... Aber mag Ansichtssache sein.

                          Warum nimmst du dann nicht gleich einen iframe? Das Problem, dass Ajax in einigen Browsern nicht bei lokalen Aufrufen funktioniert, würde damit erst gar nicht auftreten.

                          Tja, warum bin ich denn da nicht drauf gekommen? Was denkst Du? Ganz einfach, den Inhalt(Quelltext oder auch nur Text) der einzubindenden Seite brauche ich damit diese sich automatisch der Formatierung(Style) der Elternseite anpasst. Das geht kaum nur mit einem Iframe ohne entsprechende Anpassungen.

                          lg.

                      2. Hallo,

                        versteht wohl keiner was ich damit sagen wollte?

                        Ich bezweifel, dass irgendjemand hier das nicht verstanden hat. Aber ich bin immer dafür, darzustellen, dass gewisse Dinge aus einer anderen Perspektive betrachtet, auch anders aussehen und bis hin zum Gegenteil interpretiert werden können.

                        Oldtimer-Beispiel

                        Für mich sieht es so aus, dass du keinen Oldtimer hast, sondern mal davon gehört hast, dass es da Möglichkeiten gibt, mit einem vierrädigen Gefährt von A nach B zu kommen. Daraufhin hast du dich in der Richtung informiert und willst jetzt einen nagelneuen Oldtimer bauen.

                        Gruß
                        Kalk

                      3. Tach!

                        Es ist nicht so, dass ich eure Hilfe nicht schätze, sonst wäre ich nicht hier. Aber manchmal schießen hier schon einige übers Ziel hinaus. Versucht bitte mal ab und zu auch mal die Sichtweise des Fragestellers mit einzubeziehen. Zumindest war das, subjektiv betrachtet, hier früher mal so zu Stefan Münz Zeiten.

                        Es ist nicht sol dass wir keine Erweiterung des Wissens oder andere Lösungsansätze schätzen. Aber manchmal bleiben einige Fragesteller auch weit vor dem Ziel auf der Strecke. Das liegt mitunter an Antworten(den), aber auch ab und zu daran, dass er die Erfahrung und Sichtweise der Antwortgeber nicht mit in seine Lösung einbezieht. Früher war auch nicht immer alles besser, weder auf Antworter- noch auf Fragerseite. Das Forum als ganzes zu bewerten, hilft dabei niemandem.

                        P.S. Aus meiner Sicht ging es nicht um ein rotes oder grünes Auto, sondern eher um runde oder eckige Reifen.

                        dedlfix.

                      4. @@Henry

                        Ich frage nur nach einer technischen Umsetzbarkeit mit klarer Zielsezung. Simples Javascript, wenige Zeilen Code,

                        Genau das hatte ich dir geliefert.

                        Zurück bekomme ich fast nur Antworten, natürlich auch gutgemeinte, die nicht auf meine Zielsetzung passen

                        Hä??

                        Das könnte dann durchaus daran liegen, dass deine Problembeschreibung nicht zu deiner Zielsetzung passt.

                        Nun stellt sich raus, XMLHttpRequest hat einen entscheidenden Nachteil, geht nicht lokal, zumindest nicht bei allen Browsern, wie zb. IE12.

                        Warum sollte das ein Nachteil sein? Das hier ist ein Forum zur Webentwicklung. Wenn du irgendetwas anderes haben willst als eine Webanwendung, liegt es an dir, das eingangs ausdrücklich zu erwähnen.

                        LLAP 🖖

                        --
                        “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
                        1. Hallo,

                          Ich frage nur nach einer technischen Umsetzbarkeit mit klarer Zielsezung. Simples Javascript, wenige Zeilen Code,

                          Genau das hatte ich dir geliefert.

                          Nicht aus meiner Sichtweise. Entweder mit Hilfe von API oder sehr komplexer Code und somit auch nicht wirklich simple.

                          Zurück bekomme ich fast nur Antworten, natürlich auch gutgemeinte, die nicht auf meine Zielsetzung passen

                          Hä??

                          Das könnte dann durchaus daran liegen, dass deine Problembeschreibung nicht zu deiner Zielsetzung passt.

                          Spätestens nach meinem Entwurf, dürfte das aber klar gewesen sein.

                          Nun stellt sich raus, XMLHttpRequest hat einen entscheidenden Nachteil, geht nicht lokal, zumindest nicht bei allen Browsern, wie zb. IE12.

                          Warum sollte das ein Nachteil sein? Das hier ist ein Forum zur Webentwicklung. Wenn du irgendetwas anderes haben willst als eine Webanwendung, liegt es an dir, das eingangs ausdrücklich zu erwähnen.

                          Echt jetzt? Eine Seite die auch lokal funktioniert ist für dich keine Webanwendung? Die Frage ist doch eher, warum sollte ich die xmlhttpRequest-Methode bevorzugen, wenn diese auch noch Nachteile gegenüber meinem Entwurf aufzeigt bzw. Was ist denn eigentlich schlecht an meiner Lösung?

                          Gruss Henry

                          1. @@Henry

                            Ich frage nur nach einer technischen Umsetzbarkeit mit klarer Zielsezung. Simples Javascript, wenige Zeilen Code, Genau das hatte ich dir geliefert. Nicht aus meiner Sichtweise. Entweder mit Hilfe von API

                            Ja, und? Das ist der Sinn eines API: dass man mit wenigen Zeilen Code an sein Ziel kommt.

                            Problem gelöst. Passe deine Sichweise an.

                            Echt jetzt? Eine Seite die auch lokal funktioniert ist für dich keine Webanwendung?

                            Das sollte schon aus den Begriffen lokal und world wide web hervorgeghen.

                            Wenn du’s gern lokal und web hättest – über einen lokalen Webserver laufen fetch() und AJAX auch problemlos.

                            Die Frage ist doch eher, warum sollte ich die xmlhttpRequest-Methode bevorzugen

                            Ich habe nicht gesagt, dass du das sollst. Im Gegenteil.

                            Was ist denn eigentlich schlecht an meiner Lösung?

                            Wurde das nicht schon zugenüge besprochen?

                            LLAP 🖖

                            --
                            “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
                            1. Hallo,

                              Ja, und? Das ist der Sinn eines API: dass man mit wenigen Zeilen Code an sein Ziel kommt.

                              Problem gelöst. Passe deine Sichweise an.

                              Und die Codezeilen des API und die Einbindung spielen dann keine Rolle dabei? Dann könnte man ja fast alles nur noch auf API's aufbauen, warum noch selbst scripten? Warum denkst du ich muss meine Sichtweise anpassen? Vielleicht ist ja auch deine falsch?

                              Was ist denn eigentlich schlecht an meiner Lösung?

                              Wurde das nicht schon zugenüge besprochen?

                              Leider nein. Oder ist mir was entgangen?

                              Gruss Henry

                              1. Tach!

                                Und die Codezeilen des API und die Einbindung spielen dann keine Rolle dabei?

                                Das spielt nicht keine, aber weniger eine Rolle. Viel mehr spielt eine Rolle, dass man mit geringem Aufwand und damit meist auch kostengünstiger zum Ziel kommt, und sich der vorhandenen Dinge bedient, statt eigene Lösungen auszuarbeiten, die nicht zum Kern der Aufgabenstellung gehören.

                                Der Code der APIs ist in deinem Fall außerdem bereits in den Browsern vorhanden. Auch wenn du sie nicht nutzt. Da spielt Einbindung gar keine Rolle, es geht dann nur um Nutzung.

                                Dann könnte man ja fast alles nur noch auf API's aufbauen, warum noch selbst scripten?

                                Das ist als generelles Argument ziemlich unsinnig. Man hat immer noch die Geschäftslogik der eigentlichen Anwendung zu erstellen.

                                Und ja, es gibt solche Produkte, die versuchen, dass man sich mit wenigen Klicks ohne großartige Programierung etwas zusammenklickt. Man hört nur nicht viele Erfolgsstorys davon, weil es dann wohl doch nicht so einfach ist, APIs oder Vergleichbares für jede individuelle Anforderung bereitszustellen.

                                dedlfix.

                              2. @@Henry

                                Dann könnte man ja fast alles nur noch auf API's aufbauen, warum noch selbst scripten?

                                Was tust du denn bitte? Aus deinem Code: getElementById(), getElementsByTagName(), innerHTML, contentWindow – was’n das? Doch nicht etwa Methoden und Eigenschaften aus dem DOM-API? Das ist doch des Teufels; du wolltest doch ohne API! Oder etwa doch nicht?

                                LLAP 🖖

                                --
                                “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
    2. Tach!

      include ('b.php'); // $b = 'Welt!';
      

      Die Klammern sind syntaktisch nicht falsch, aber sinnlos. include ist keine Funktion. Bei Funktionen sind Klammern vorgeschrieben, um die Argumentliste zu begrenzen. Hier haben sie hingegen die Funktion, Teilausdrücke zu gruppieren, um Prioritäten festzulegen. Und das ist bei einem Ausdruck, der aus nur einem Teil besteht, genauso sinnlos wie das Klammern eines Gesamtausdrucks à la $x = (1 + 1);.

      dedlfix.

  2. @@Henry

    ich suche jetzt schon eine Weile nach einer Include-Möglichkeit von externen Dateien(innerhalb der gleichen Domain) durch JS.

    Am einfachsten mit dem Fetch-API und Body.text().

    Alle aktuellen Browser (außer UC und Opera Mini) unterstützen das schon. Wenn’s denn auch in alten IEs funktionieren muss, musste das altertümlich mit Ajax machen.

    LLAP 🖖

    --
    “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory