Hans Dampf: Was bedeutet ein $ vor dem Funktionsnamen?

Hallo liebe Gemeinde!

Ich habe hier ein Skript, das ich in Projektdaten einbinde. In diesem sind Funktionen definiert die mit einem $ beginnen. Hat das irgend eine bedeutung? Ich dachte immer in JavaScript sollten Funktionsnamen keine Sonderzeichen enthalten.

Beispiel:
function $L(d,u){
    var s=(u?$H+"?UID=":$D+"?")+$h+"&";
    return K+"//"+CSurl+"/"+s+d;
}

Die Funktion ist Teil eines includierten Webtrackers.

HD

  1. Moin!

    var s=(u?$H+"?UID=":$D+"?")+$h+"&";

    [...]

    Die Funktion ist Teil eines includierten Webtrackers.

    Da Webtracker auf dem Server Daten speichern ist in diesem Fall anzunehmen, dass das, was Sie für ein reines Javascript halten Bestandteil eines Skkriptes in einer anderen Skriptsprache ist. Perl oder PHP kommen hier gleichermaßen in Frage.

    Da steht nicht zufällig weiter oben sowas wie <?php oder <? oder #! /usr/bin/perl?

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix®

    --
    Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
    1. Hallo fastix®!

      Da steht nicht zufällig weiter oben sowas wie <?php oder <? oder #! /usr/bin/perl?

      Nein, die Datei liegt auf dem Server als js Datei vor und ich habe diese auch von dort begezogen und von dort den JavaScript Code kopiert.

      Ich kann diese mal hier posten:

      http://usm.daimlerchrysler.com/usm.js

      Grüße

      HD

      1. Moin!

        Hallo fastix®!

        Da steht nicht zufällig weiter oben sowas wie <?php oder <? oder #! /usr/bin/perl?

        Nein, die Datei liegt auf dem Server als js Datei vor und ich habe diese auch von dort begezogen und von dort den JavaScript Code kopiert.

        Das kann auch ohne Bedeutung sein, weil gegebenenfalls die Datei dennoch durch ein anderes Skript "geparst" wird, das heisst, im Moment der Auslieferung an den Browser steht da zum Bleistift statt $m ein 'intWert'.

        Ich habe mir das Skript angesehen und würde schon mal deshalb von dessen Verwendung abraten, da der Programmierer dieses absichtlich unlesbar gemacht hat. Das hat neben einer Reihe negativer Folgen bezüglich der Anpassbarkeit auch diejenige, dass eine Kontrolle, was dieses Skript wirklich tut, sehr erschwert wird. Damit übrigens auch die Erfolgskontrolle... und man weiss nicht, wo die so gewonnenen Daten noch hingehen.

        Gibt es irgendwo ein Beispiel, wo man dieses Skript in Aktion sehen kann?

        MFFG (Mit freundlich- friedfertigem Grinsen)

        fastix®

        --
        Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
        1. Hallo fastix®!

          Dieses Skript wird in allen Daimler Chrysler Seiten eingebunden und dient einem Dienstleister zum Tracken der Seiten. Daher weiß ich auch, dass es nicht nochmals geparst wird, es wird einfach direkt in die Seiten includiert und am Ende jeder Seite eine Referenz auf eine Funktion darin gelegt. (Instedia)

          HD

          1. Moin!

            Dieses Skript wird in allen Daimler Chrysler Seiten eingebunden

            Ja. Klasse. Also, wer auch immer das verbrochen hat, scheinbar sämtliche Seiten von daimlerchrysler.com sind invalide und fehlerhaft. Die logische Anordnung von

            Beispiele?

            <SCRIPT language=javascript>
            ... target=newwindow>
            .... style-Bereiche im Body, skript-Bereiche wild im Body verteilt....

            WARUM sollte dann ausgerechnet dieses Javascript standardkonform sein? Ganz offensichtlich wurde das Projekt ausschließlich für den Internet Explorer gestrickt, und nur mit diesem getestet.

            Nach einem kurzen Blick in den Quelltext komme ich zu der Auffassung: 'nothing to repair- make it new'. Das ist hier definitiv der ökonomischste Ansatz.

            http://validator.w3.org/check?uri=http%3A%2F%2Fwww.daimlerchrysler.com%2Fdccom%2Fhome_d

            Bitte mal die Fehlermeldungen abarbeiten. Einige davon sind für die Scripte schlicht tödlich. Ferner: Wofür zum Teufel braucht eine solche statische Seite so viel Javascript? Um andere Fehler zu reparieren werden scheinbar neue gemacht. Jemand sollte mit der Projektleitung ein sehr, sehr ernstes Wort reden.

            MFFG (Mit freundlich- friedfertigem Grinsen)

            fastix®

            --
            Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
            1. Moin!

              http://www.daimlerchrysler.com

              Noch eine Frage, bevor ich "mit Grausen abwende". Der Tracker soll nicht etwa zur Feststellung dienen, wann welcher Browser abstürzt?

              MFFG (Mit freundlich- friedfertigem Grinsen)

              fastix®

              --
              Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
              1. Hallo fastix®!

                So, oder so ähnlich hatte ich auch schon angefragt. Daher poste ich hier auch nicht mit meinem echten Namen ;o)

                Bis bald...

            2. Hallo fastix®!

              Sag dies den Leuten die diese Seiten bauen.

              Ich habe gerade nur mit einem kleinen Miniprojekt zu tun und dort soll eben auch dieses Script implementiert werden. Da kann man also noch so sauber arbeiten, es führt einfach zu Fehlern.

              Schönen Gruß

              HD

              1. Moin!

                Sag dies den Leuten die diese Seiten bauen.

                Mache die einfach auf die Diskussion hier aufmerksam. Die Webseite beschädigt ganz definitiv den Qualitätsanspruch der Marke. Das sollte dem Konzern Grund genug sein über ein paar kleine Änderungen im diesbezüglichen Umfeld nachzudenken, statt irgendwelchen werbegeschenkverteilenden Werbefuzzis alle hohlen Sprüche abzunehmen.

                Wer sollte einer elektronischen Steuerung aus dem Haus Daimler-Chrysler vertrauen, wenn nicht mal die Webseite valide ist und die enthaltenen Skripte die Fehlerprotokolle überlaufen lassen?

                MFFG (Mit freundlich- friedfertigem Grinsen)

                fastix®

                --
                Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
            3. Moin!

              Wofür zum Teufel braucht eine solche statische Seite so viel Javascript? Um andere Fehler zu reparieren werden scheinbar neue gemacht. Jemand sollte mit der Projektleitung ein sehr, sehr ernstes Wort reden.

              Warum sollten denn deren Webseiten besser sein als deren Autos?

              Gruß
              Avalon

  2. hi,

    Ich habe hier ein Skript, das ich in Projektdaten einbinde. In diesem sind Funktionen definiert die mit einem $ beginnen. Hat das irgend eine bedeutung? Ich dachte immer in JavaScript sollten Funktionsnamen keine Sonderzeichen enthalten.

    Ja, stimmt eigentlich - auch selfhtml beschreibt diese so in den Regeln für selbstvergebene Namen - insb. "sie dürfen als einziges Sonderzeichen den Unterstrich "_" enthalten".

    Warum das jetzt in deinem fertigen Code so drinsteht, kann natürlich diverse Ursachen haben: Entweder hat der Ersteller einen Fehler gemacht - oder aber auch, dieser Code war eigentlich gar nicht dafür gedacht, so direkt an den Client ausgeliefert zu werden, sondern hätte vorher noch serverseitig geparst werden sollen, in einer Sprache in der $ einen Variablennamen kennzeichnet, der dann bei der Ausgabe durch einen Wert ersetzt werden sollte ... o.ä.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Hallo Wahsage,

      ich habe fastix® dazu schon geantwortet.

      https://forum.selfhtml.org/?t=121333&m=779864

      Gruß HD

    2. Hallo,

      Ich dachte immer in JavaScript sollten Funktionsnamen keine Sonderzeichen enthalten.

      Ja, stimmt eigentlich - auch selfhtml beschreibt diese so in den Regeln für selbstvergebene Namen - insb. "sie dürfen als einziges Sonderzeichen den Unterstrich "_" enthalten".

      Das ist wie gesagt ganz einfach ein Fehler in SELFHTML.

      Mathias

  3. Beispiel:
    function $L(d,u){
        var s=(u?$H+"?UID=":$D+"?")+$h+"&";
        return K+"//"+CSurl+"/"+s+d;
    }

    solche Zeichen zu verwenden ist teilweise modern geworden, findet man immer wieder in Bibliotheken (weiter verbreitet ist aber der Unterstrich).

    Es funktioniert ohne Probleme auch wenn es nicht sollte und hat den Nutzen oder Vorteil, dass die Funktionsnamen nicht so leicht in den Konflikt mit Elementname (vor allem im IE wichtig) oder vordefinierten Funktionen kommen können.

    Struppi.

    1. Hallo,

      [...] und hat den Nutzen oder Vorteil, dass die Funktionsnamen nicht so leicht in den Konflikt mit Elementname (vor allem im IE wichtig) oder vordefinierten Funktionen kommen können.

      Ist es dann nicht viel sinnvoller gleich objektorientiert zu arbeiten? Dann muss man sich nur einen konfliktfreien Namen ausdenken, wie zum Beispiel BBCodeEingabeVereinfachung und kann darin mit namen rumfurwerken wie man will, so lange man sich nicht selbst in die Quere kommt, oder habe ich da etwas übersehen/verpasst?

      Grüße
      Jeena Paradies

      --
      Open- vs. Closed Source Software - Verdienstmöglichkeiten | Jlog | Gourmetica Mentiri
      1. [...] und hat den Nutzen oder Vorteil, dass die Funktionsnamen nicht so leicht in den Konflikt mit Elementname (vor allem im IE wichtig) oder vordefinierten Funktionen kommen können.
        Ist es dann nicht viel sinnvoller gleich objektorientiert zu arbeiten? Dann muss man sich nur einen konfliktfreien Namen ausdenken, wie zum Beispiel BBCodeEingabeVereinfachung und kann darin mit namen rumfurwerken wie man will, so lange man sich nicht selbst in die Quere kommt, oder habe ich da etwas übersehen/verpasst?

        Nein. Für größere JS Projekte ist das durchaus sinnvoller, aber wenn du nur eine handvoll Funktionen hast ist OO überflüssig.
        Außerdem spart es halt ein bisschen Tippparbeit wenn du statt BBCodeEingabeVereinfachung() einfach $b() schreibst.

        Struppi.

        1. Hallo,

          Nein. Für größere JS Projekte ist das durchaus sinnvoller, aber wenn du nur eine handvoll Funktionen hast ist OO überflüssig.

          Ok das verstehe ich, da man das sowieso alles einigermaßen im Griff hat mit den Funktionsnamen.

          Außerdem spart es halt ein bisschen Tippparbeit wenn du statt BBCodeEingabeVereinfachung() einfach $b() schreibst.

          Aber noch kürzer wäre es doch einfach b() zu schreiben. Wer sagt mir denn, dass der andere Programmierer nicht auch genau auf die gleiche grandiose Idee mit dem $ gekommen ist? Irgendwie scheint mir das gehüpft wie gesprungen zu sein.

          Grüße
          Jeena Paradies

          --
          <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
          <html><head>
          <title>500 Internal Server Error</title>
          </head><body>
          <h1>Internal Server Error</h1>
          <p>The server encountered an internal error or
          misconfiguration and was unable to complete
          your request.</p>
          <p>Please contact the server administrator,
           server@genetsis.de and inform them of the time the error occurred,
          and anything you might have done that may have
          caused the error.</p>
          <p>More information about this error may be available
          in the server error log.</p>
          <hr>
          <address>Apache Server at jeenaparadies.net Port 80</address>
          </body></html>
          | Jlog | Gourmetica Mentiri
          1. hi Jeena,

            interessante remote-Signatur da in deinem vorherigen Posting :-)

            gruß,
            wahsaga

            --
            /voodoo.css:
            #GeorgeWBush { position:absolute; bottom:-6ft; }
            1. Hallo,

              interessante remote-Signatur da in deinem vorherigen Posting :-)

              Jo ich weiß auch nicht, irgendwie gibt es manchmal Probleme mit PHP5 auf meinem Server, das gibt sich dann nach ein paar Minuten aber von alleine wieder, total verwirrend.

              Grüße
              Jeena Paradies

              --
              Open- vs. Closed Source Software - Verdienstmöglichkeiten | Jlog | Gourmetica Mentiri
    2. Hi,

      Es funktioniert ohne Probleme ...

      Seit JavaScript 1.1. ;-)

      ... auch wenn es nicht sollte.

      Jo. :)

      Gruß, Cybaer

      --
      Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!