Kann Javascript-Datei ihren eigenen Namen bekommen?

8

Ich versuche, eine Art Logger-Funktionalität in Javascript zu erstellen. Gibt es eine API für ein Skript, um einen eigenen Dateinamen zu erhalten?

    
Manohar 08.12.2009, 09:55
quelle

6 Antworten

5

Ich sehe zwei Möglichkeiten:

  • fügt in jede JS-Datei eine Variable var filename = 'script.js'; ein
  • Erhalte den Dateinamen mit <script> Tag-Name

JS kann Dateinamen wie bash / perl / c Skripte nicht bekommen.

    
hsz 08.12.2009, 10:02
quelle
12

Das sollte funktionieren: (new Error).fileName

Oder Sie können dies versuchen:

%Vor%

Die zweite Option gibt Ihnen den Pfad Ihrer Skriptdatei.

    
pawel 08.12.2009 12:21
quelle
3

Wenn wir das Tag des aktuellen Skripts abrufen können, können wir das Attribut src lesen. Auszug aus Ссылка unten:

  

document.currentScript gibt das Element zurück, dessen Skript gerade verarbeitet wird .

%Vor%

Vorteile

  • Einfach und explizit. Zuverlässig.
  • Sie müssen das Skript-Tag nicht ändern
  • Funktioniert mit asynchronen Skripten (verzögern & amp; async)
  • Funktioniert mit Skripts, die dynamisch eingefügt werden

Probleme

  • Funktioniert nicht in älteren Browsern und IE.

... Von dort können wir einfach das Attribut src lesen!

%Vor%     
Sheffie 27.09.2015 06:41
quelle
0

Leider ist das nicht möglich.

Wenn Sie Ihre Herangehensweise ändern, kann Ihnen das Abrufen von Funktionsnamen helfen, was manchmal möglich ist. Ihre beste Chance wäre, den Funktionsnamen aus "arguments.callee" zu extrahieren. Dies funktioniert nur, wenn die Funktion wie

definiert ist %Vor%

Und funktioniert nicht, wenn

%Vor%     
dereli 08.12.2009 10:14
quelle
0

Dies ist meine Änderung, die einige mögliche Probleme behebt, aber eine Anforderung hinzufügt.

Sie müssen die Datei auf eine bestimmte Art benennen, zum Beispiel wenn Sie eine .js-Datei haben, aber wissen wollen, welche Version geladen ist (zB um einen PHP-Server zu informieren). Ihre js-Datei wäre also "zoom_v34.js".

%Vor%     
Smellymoo 27.09.2015 06:10
quelle
0

Sie können versuchen, dies am Anfang Ihrer JavaScript-Datei zu setzen:

%Vor%

Stellen Sie sicher, dass Sie nur Funktionen darunter haben. Die globale Variable myJSFilename enthält den vollständigen Pfad der JavaScript-Datei, und der Dateiname kann daraus analysiert werden. Getestet in IE11, aber es sollte anderswo funktionieren.

    
johnnydanger 08.11.2016 16:25
quelle

Tags und Links