Eternius: Dynamisch Skript auslesen

Hallo,

ich erstelle dynamisch ein Skript mit document.write('<script src="test.js" [..], kann ich mit javascript auch irgendwie auslesen, was der browser aus der test.js gelesen hat, oder zumindest mit dem DOM Inspector?

danke und gruss

--
no strict;
no warnings;
Meine Signatur hat Urlaub.
  1. Hi,

    ich erstelle dynamisch ein Skript mit document.write('<script src="test.js" [..], kann ich mit javascript auch irgendwie auslesen, was der browser aus der test.js gelesen hat, oder zumindest mit dem DOM Inspector?

    Die DOM-Methoden zum Auslesen des Elementinhalts sollten eigentlich auch für die script-Elemente funktionieren (hab's jetzt nicht getestet).
    Einzig der Zugriff ist etwas kompliziert - da script kein id-Attribut hat, kann man nicht per getElementById drauf zugreifen, muß also mit anderen Methoden drauflangen (getElementsByTagName o.ä.).

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    Schreinerei Waechter
    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. Hallo,

      Die DOM-Methoden zum Auslesen des Elementinhalts sollten eigentlich auch für die script-Elemente funktionieren (hab's jetzt nicht getestet).
      Einzig der Zugriff ist etwas kompliziert - da script kein id-Attribut hat, kann man nicht per getElementById drauf zugreifen, muß also mit anderen Methoden drauflangen (getElementsByTagName o.ä.).

      hmm, danke, im DOM Inspector finde ich aber keine Value/Text Node wo der Inhalt der javascript Datei drinsteht (oder gibts da auch wiedern trick?), das ist eigentlich auch mein problem, die skript node kriege ich schon an den wickel.

      Noch eine frage, wie kann ich aus diesem Array:

        
        var bla=new Array();  
        bla["blub"]=5;  
        bla["blub"]=undefined;  
        
        for (i in bla)  
        {  
          alert(i);  
        }  
      
      

      den index blub entfernen (mir scheint gar nicht)?

      gruss

      --
      no strict;
      no warnings;
      Meine Signatur hat Urlaub.
      1. Hi,

        hmm, danke, im DOM Inspector finde ich aber keine Value/Text Node wo der Inhalt der javascript Datei drinsteht (oder gibts da auch wiedern trick?), das ist eigentlich auch mein problem, die skript node kriege ich schon an den wickel.

        Ups, daß das ein externes Script ist, hab ich übersehen.

        Noch eine frage, wie kann ich aus diesem Array:
          den index blub entfernen (mir scheint gar nicht)?

        Schon mit dem delete-Operator probiert?

        cu,
        Andreas

        --
        Warum nennt sich Andreas hier MudGuard?
        Schreinerei Waechter
        Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
        1. Hi,

          kopfklatsch

          danke, du weisst schon, wald und lauter bäume und so.

          gruss

          --
          no strict;
          no warnings;
          Meine Signatur hat Urlaub.
      2. Tag Eternius.

        im DOM Inspector finde ich aber keine Value/Text Node wo der Inhalt der javascript Datei drinsteht (oder gibts da auch wiedern trick?), das ist eigentlich auch mein problem, die skript node kriege ich schon an den wickel.

        Ach so, du möchtest auf den _Inhalt_ der Script-Datei zugreifen, als wäre dieser Bestandteil des Dokumentenbaums, sehe ich das richtig? Darin sehe ich eigentlich keinen Sinn, grundsätzlich wäre aber sowas denkbar:

        function neuesElement(vorfahre,elementtyp,beschriftung,id) {  
          var parElem = document.getElementById(vorfahre);  
          var neuElem = document.createElement(elementtyp);  
          var txtElem = document.createTextNode(beschriftung);  
          var attrib = document.createAttribute('id');  
          attrib.nodeValue = id;  
          neuElem.setAttributeNode(attrib);  
          neuElem.appendChild(txtElem);  
          parElem.appendChild(neuElem);  
        }
        

        Rufst du das in deiner Hauptseite auf, kannst du selbstverständlich auf den neu erzeugten Knoten über dessen ID zugreifen. Ansonsten beschreibe dein Problem mal etwas genauer.

        Siechfred

        1. Hi,

          Ach so, du möchtest auf den _Inhalt_ der Script-Datei zugreifen, als wäre dieser Bestandteil des Dokumentenbaums, sehe ich das richtig? Darin sehe ich eigentlich keinen Sinn, grundsätzlich wäre aber sowas denkbar:

          function neuesElement(vorfahre,elementtyp,beschriftung,id) {

          var parElem = document.getElementById(vorfahre);
            var neuElem = document.createElement(elementtyp);
            var txtElem = document.createTextNode(beschriftung);
            var attrib = document.createAttribute('id');
            attrib.nodeValue = id;
            neuElem.setAttributeNode(attrib);
            neuElem.appendChild(txtElem);
            parElem.appendChild(neuElem);
          }

            
          Hm. Und welcher Teil Deines Scripts sorgt jetzt dafür, daß auf den Inhalt der per src-Attribut verlinkten Datei zugegriffen werden kann?  
          Diese ist ja eben nicht Textknoten im script-Element.  
            
            
          Was mir zu dem Thema noch einfällt:  
          ggf. könnte dieses xmlhttprequest-Zeug helfen (damit kann man auch Text-Dateien holen) - für die URL kann man ja das src-Attribut des script-Elements auslesen.  
            
          cu,  
          Andreas
          
          -- 
          [Warum nennt sich Andreas hier MudGuard?](http://www.Mud-Guard.de/)  
          [Schreinerei Waechter](http://www.schreinerei-waechter.de/)  
            
          Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.  
          
          
          1. Tag MudGuard.

            Hm. Und welcher Teil Deines Scripts sorgt jetzt dafür, daß auf den Inhalt der per src-Attribut verlinkten Datei zugegriffen werden kann?

            Das Script sollte eigentlich nur den einzigen m.E. sinnvollen Weg zeigen, wann der Inhalt der verlinkten Datei zu Elementen im DOM führen kann. Ansonsten sehe ich im Moment keinerlei Sinn in Eternius' Vorhaben. Oder ich habe ihn völlig falsch verstanden.

            Ansonsten könnte auch sowas denkbar sein:

            function getFunctionText(fName) {  
              if(typeof window[fName] != 'undefined') {  
                return window[fName];  
              }  
              else {  
                alert("Fehler");  
                return false;  
              }  
            }
            

            Das geht auch, wenn die Funktion ausgelagert ist. Natürlich liefert die Funktion nur den Quelltext der Funktionen bzw. den Inhalt von im externen JS gespeicherten Variablen und der Name derselben muss bekannt sein. Möchte man den ganzen Text haben, könnte in der Tat XMLhttpRequest helfen:

            var pfad = document.getElementsByTagName('script')[0].src;  
            var obj = getHttpObject();  
            obj.open("GET", pfad, true);  
            obj.onreadystatechange = function() {  
                                       if (obj.readyState == 4) {  
                                         alert(obj.responseText)  
                                       }  
                                     }  
            obj.send(null);
            

            Der Code ist natürlich stark vereinfacht, funktioniert jedoch. Aber wie gesagt, ich sehe irgendwie noch nicht so ganz den Sinn der ganzen Operation.

            Siechfred

            1. Hallo,

              Hm. Und welcher Teil Deines Scripts sorgt jetzt dafür, daß auf den Inhalt der per src-Attribut verlinkten Datei zugegriffen werden kann?

              Das Script sollte eigentlich nur den einzigen m.E. sinnvollen Weg zeigen, wann der Inhalt der verlinkten Datei zu Elementen im DOM führen kann. Ansonsten sehe ich im Moment keinerlei Sinn in Eternius' Vorhaben. Oder ich habe ihn völlig falsch verstanden.

              ich wollt halt per klick mir alles dumpen lassen, was der browser gerade an scripts/stylesheets/bilder etc verwendet. und bei js gerade deswegen, weil ich meine mein browser hat manchmal die angewohnheit gecachtes javascript zu verwenden und manchmal nicht.

              gruss

              --
              no strict;
              no warnings;
              Meine Signatur hat Urlaub.
              1. Tag Eternius.

                ich wollt halt per klick mir alles dumpen lassen, was der browser gerade an scripts/stylesheets/bilder etc verwendet.

                Was der Browser an JS-Code verwendet, bekommst du nicht, nur das, was die aktuell geladene Seite kennt. Ich habe da mal eine kleine testseite geschrieben. Da werden natürlich die eingebauten Eigenschaften, Methoden und Objekte angezeigt, aber auch die individuell festgelegten (in meinem Fall die Funktionen neuesElement und getAll sowie die Variable testvar). Meintest du sowas in der Richtung?

                Siechfred

                1. Tag Eternius.

                  ich wollt halt per klick mir alles dumpen lassen, was der browser gerade an scripts/stylesheets/bilder etc verwendet.

                  Was der Browser an JS-Code verwendet, bekommst du nicht, nur das, was die aktuell geladene Seite kennt. Ich habe da mal eine kleine testseite geschrieben. Da werden natürlich die eingebauten Eigenschaften, Methoden und Objekte angezeigt, aber auch die individuell festgelegten (in meinem Fall die Funktionen neuesElement und getAll sowie die Variable testvar). Meintest du sowas in der Richtung?

                  genau sowas meinte ich (+ die geladenen ressourcen ;), vielen dank, muss schicken.

                  gruss

                  --
                  no strict;
                  no warnings;
                  Meine Signatur hat Urlaub.
                  1. Holla,

                    genau sowas meinte ich (+ die geladenen ressourcen ;), vielen dank, muss schicken.

                    D'oh, heut ist nich mein Tag, ja das schickt auch, ich komm ja an die functions, und da steht der code drin.

                    gruss

                    --
                    no strict;
                    no warnings;
                    Meine Signatur hat Urlaub.
      3. Noch eine frage, wie kann ich aus diesem Array:

        Laß dich nicht von den eckigen Klammern verwirren. Das ist kein Array, sondern ein Objekt, dem du die Eiegnschaft blub gibst.

        var bla = new Object();
        bla.blub = 5;

        delete bla.blub

        den index blub entfernen (mir scheint gar nicht)?

        Deshalb steht auch da da es keine Array ist, du kannst auf solche Konstrukte kein Array Funktionen anwenden. sondern es ist ein Objekt, folglich
        {link:http://de.selfhtml.org/javascript/sprache/operatoren.htm#delete]

        Struppi.