Pit: filename ermitteln

Hallo,

ich würde gerne über natives Javascript den aktuellen filenamen aus der url ermitteln. Meine Idee funktioniert im Chrome, aber im FF nicht. Woran liegt das oder wie geht es besser?

var url=location.href;
var urlFilename = url.substring(url.lastIndexOf('/')+1);
alert(urlFilename);

(Das obiger Schnipsel ohnehin nur funktioniert, wenn auch tatsächlich ein filename angegeben ist, ist mir klar, das ist in diesem Fall auch ok so.)

Übrigens, window.alert(this.href.substr(this.href.lastIndexOf('/') + 1)); funktioniert auch im FF.

Den alert() nutze ich in diesem Fall übrigens anstelle von console.log(), weil es im Entwicklerwerkzeug des FF auch funktioniert. Nur im normalen FF klappts nicht.

Pit

  1. Hallo Pit,

    • Was liefert eine Kontrollausgabe von location.href?
    • Was meldet die Fehlerkonsole?
    • Wie äußert sich „funktioniert nicht“?

    Gruß
    Jürgen

  2. @@Pit

    ich würde gerne über natives Javascript den aktuellen filenamen aus der url ermitteln. Meine Idee funktioniert im Chrome, aber im FF nicht.

    Kann ich nicht nachvollziehen. Funktioniert im Firefox sowohl mit alert() als auch mit console.log().

    var url=location.href;
    var urlFilename = url.substring(url.lastIndexOf('/')+1);
    

    Du willst doch nicht wirklich sowas wie index.html?foo=bar oder index.html#quz haben, oder?

    Du willst also nicht den ganzen URI location.href auswerten, sondern nur einen Teil davon: location.pathname. [MDN]

    LLAP 🖖

    --
    „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
    1. Hi Gunnar,

      Kann ich nicht nachvollziehen. Funktioniert im Firefox sowohl mit alert() als auch mit console.log().

      Auch mit geschlossenem Entwicklerwerkzeug? mit offenem gehts auch bei mir.

      Du willst also nicht den ganzen URI location.href auswerten, sondern nur einen Teil davon: location.pathname. [MDN]

      Stimmt. Den hatte ich übersehen, weil es in diesem Fall egal gewesen wäre.

      Ändert aber nichts daran, dass es (zumindest bei mir FF58) nicht läuft, spricht, der alert gar nicht ausgeführt wird.

      Pit

      1. @@Pit

        Kann ich nicht nachvollziehen. Funktioniert im Firefox sowohl mit alert() als auch mit console.log().

        Auch mit geschlossenem Entwicklerwerkzeug?

        Ja. https://bittersmann.de/test/pathname.html?foo=bar#quz

        LLAP 🖖

        --
        „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
        1. Hi Gunnar,

          Auch mit geschlossenem Entwicklerwerkzeug?

          Ja. https://bittersmann.de/test/pathname.html?foo=bar#quz

          Tzzz... sowas… Ja, geht auch bei mir im FF. Woran kann das liegen? Ich habe den Code innerhalb einer Funktion notiert und binde das JS extern ein. Dürfte aber auch nicht das Problem sein…

          Pit