Pfad zum aktuellen JavaScript ermitteln

Donnerstag, 01. September 2011

Problem: Ich will den Pfad zu dem aktuellen Javascript ermitteln. Nehmen wir an, ich habe ein Javascript unter dem Pfad /fileadmin/templates/js/script.js liegen und möchte über ein Script darin den Pfad “fileadmin/templates/js/” ermitteln. In PHP ist das ja relativ leicht über den Befehl $_SERVER[’SCRIPT_NAME’] bzw. die magische Konstante dirname(__FILE__) zu lösen. Leider gibt es keinen vergleichbaren Befehl in JavaScript.

Ein kleiner Workaround macht es zumindest dann möglich, wenn das Script über einen <script>-Tag eingebunden wurde, also an irgendeiner Stelle im HTML-Quelltext steht. Dazu hilft ein kleiner jQuery-Einzeiler von 99°:

// Pfad zu einem JS zurückgeben
(function($){$.extend({'getJSPath': function ( file ) {return $('script[src$="'+file+'"]').attr('src').replace(file, '');}});})(jQuery);

Die Funktion kann dann so aufgerufen werden:

var path = $.getJSPath('script.js');
alert( path );

In dem Beispiel würde sich ein Fenster öffnen mit dem Text “fileadmin/templates/js/”.