hos: Zeile aus Script im gleichen Script auslesen

Hallöchen,

wenn ich in der ersten Zeile meines Scriptes eine Zeile

  
/*Projekt Einszwodrei v12345*/  

habe, die aktuelle Version beinhaltet (es geht also um Versionierung, falls jemand fragt, warum ich das frage :-))

..kann ich dann irgendiwe IM selben Dokument an anderer Stelle parsen, was in der ersten Zeile steht?

Beste Grüße

  1. ..kann ich dann irgendiwe IM selben Dokument an anderer Stelle parsen, was in der ersten Zeile steht?

    Warum setzt du keine Variable?

    1. Hallo suit,

      Warum setzt du keine Variable?

      Hm..der Kommentar mit der Info in der ersten Zeile wird serverseitig ins Skript geschrieben und deshalb "will" ich die dann IM Skript auslesen. Oder was meinst Du genau?

      VG

      1. Hallo suit,

        Warum setzt du keine Variable?
        Hm..der Kommentar mit der Info in der ersten Zeile wird serverseitig ins Skript geschrieben und deshalb "will" ich die dann IM Skript auslesen. Oder was meinst Du genau?

        Warum schreibst du nicht in die 1. Zeile deines Scripts einfach die Versionsnummer in form einer variable

        var version = '1.2.0';  
          
        /* Lizenzinfo */  
          
        // ganz viel Script  
          
        alert(version);
        

        Ansonsten, wenn du wirklich den Text parsen willst:

        Durchsuche das DOM nach dem zuletzt eingefügten Script-Element -

        getElementsByName und daraus mit slice() das letzte rausschnipseln - das ist das derzeit ausgeführte.

        Dessen src-Attribut kannst du nun per XHR abholen (SOP beachten) und dann mit Zeichenkettenfunktionen bearbeiten - oder aber du machst dasselbe mit dem Elementinhalt.

  2. @@hos:

    nuqneH

    habe, die aktuelle Version beinhaltet (es geht also um Versionierung, falls jemand fragt, warum ich das frage :-))

    Und wozu brauchst du^W^W braucht der Nutzer die Versionsnummer?

    ..kann ich dann irgendiwe IM selben Dokument an anderer Stelle parsen, was in der ersten Zeile steht?

    <script id="foo">  
    [code lang=javascript]  /* Lorem ipsum */  
      (function ()  
      {  
        void();  
      })();
    

    </script>
    <script>

      (function ()  
      {  
        function getVersion(scriptId)  
        {  
          return document.getElementById(scriptId).firstChild.nodeValue.match(/\/\*.*\*\//);  
        }  
      
        if (window.addEventListener) window.addEventListener("load", function () { alert(getVersion('foo')); }, false);  
      })();
    

    </script>[/code]

    funktioniert in modernen Browsern, nicht in IE 8 abwärts (generell nicht, nicht nur wegen window.addEventListener nicht).

    Qapla'

    --
    Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
    (Mark Twain)
    1. So wie ich das verstanden habe, will der OP aus dem Script herraus sich selbst parsen

      foo.js:

      /* version: 1.4 */  
        
      function do_something() {  
        
         return version;  
      }
      

      foo.html:
      <script type="text/javascript" src="foo.js"></script>

      Und hier besteht dann nur die Möglichkeit, das zuletzt eingefügte script-Element herauszufinden (und das wird schwierg, wenn man script-Elemente nachträglich "irgendwo" ins DOM einfügt) und dieses zu parsen.

      Etwa wie $_SERVER['SCRIPT_FILENAME'] unter PHP gibt es afaik in JavaScript ja nicht.

    2. @@Gunnar Bittersmann:

      nuqneH

      function getVersion(scriptId)

      {
            return document.getElementById(scriptId).firstChild.nodeValue.match(//*.**//);
          }

        
      Das sollte man wohl robuster machen:  
        
      ~~~javascript
          function getVersion(scriptId)  
          {  
            var scriptElement = document.getElementById(scriptId);  
            return scriptElement && scriptElement.firstChild ? scriptElement.firstChild.nodeValue.match(/\/\*.*\*\//) : null;  
          }
      

      Qapla'

      --
      Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
      (Mark Twain)