Wie rufe ich mit URL-Parametern dynamisch Inhalte auf?
bearbeitet von
> Zeile 2: aktuellen Path-Teil der URL auslesen (also /games/demons-souls/...)
~~~ JavaScript
let urlPath = window.location.pathName;
~~~
Bei `alert(urlPath)` kommt aber `undefined` heraus. Nur wenn ich das `.pathName` weglasse, kommt die abgerufene URL heraus. Eben sehe ich, das Programm schlägt mir `.pathname` vor. Damit wird auch die URL tatsächlich ausgegeben. Ist das case-sensitive?
> Zeile 3: Position des letzten / finden
> Zeile 4: Den Text hinter dem / lesen, das ist der Name des Tabs. ODER LEER!
> ~~~js,bad
> let urlPath = window.location.pathName;
> let slash = page.lastIndexOf("/");
> let page = urlPath.substr(slash+1);
> ~~~
>
> Worin muss ich denn den letzten / suchen, um den Tab-Namen herauszubekommen?
Ich würde sagen, in `urlPath`. Dort suchst du von hinten das erste `/` der URL-Zeile.
> Ist das Problem die Reihenfolge, in der ich Dinge tue? Oder greife ich vielleicht im richtigen Moment auf die falschen Daten zu?
Ja, nämlich oben. Wenn man es so schreibt, funktioniert zumindest das Finden des strings:
~~~ js, good
let urlPath = window.location.pathname;
let slash = urlPath.lastIndexOf( "/" );
let page = urlPath.substr(slash+1);
~~~
Jetzt muckt er aber an dieser Stelle rum: `$tab = $("#tabs .tab[href="+CSS.escape(page)+"]")`
Fehlermeldung: `Uncaught Error: Syntax error, unrecognized expression: #tabs .tab[href=]`
Hm? Stimmt doch eigentlich?