Hallo borisbaer,
In meinem Kopf steht this für /games/demons-souls/
Schlag Dir das gleich wieder aus dem Kopf.
this
ist in JavaScript ganz grob gesagt der aktuelle Kontext, in dem eine Funktion oder Methode läuft. Aber: Man hat beim Aufrufen einer Funktion durchaus Möglichkeiten, diesen Kontext zu manipulieren. Und das tut jQuery, wenn es einen Eventhandler aufruft. Es sorgt dafür, dass Du in this das Objekt für das HTML Element findest, auf dem der Eventhandler registriert wurde. Und weil Du den click-Handler auf dem Link definierst, ist das das HTML Elementobjekt zum geklickten Link. Also: this
ist der Link.
Bei this.href hat sie immer den ganzen Pfad vor dem href-Attribut ausgegeben, also nicht nur bspw. savegame. Warum ist das so?
this
ist der Link, und this.href
ist die verlinkte URL. Und genau hier bin ich böse reingefallen - du darfst mir die Ohrfeige nun gerne zurückgeben. Es gibt einen Unterschied zwischen dem href Attribut und der href-Eigenschaft des Link-Objekts. Das href Attribut steht für den Text, der im HTML steht. Und die href-Eigenschaft ist das, wie der Browser dieses Attribut deutet. Das habe ich übersehen; ich dachte, in der href-Eigenschaft stünde der Attributinhalt. Aber nein - da steht bereits die vollständig aufbereitete URL, auf die der Link verweist.
Deswegen ist this.href für den pushState okay. Aber für das Bauen der Ajax-URL steht schon zu viel drin, deswegen ist es da ganz sinnvoll, wenn Du mit $(this).attr("href") den Attributinhalt ausliest.
die .htaccess so umschreiben, dass URLs nach dem Muster /games/$1/$2 automatisch /games/$1/subpages/$2 aufrufen?
Nein, tu das nicht. Die URLs ohne "subpages" drin sind die, die der Browser für den Erstabruf der Seite braucht. Die werden von htaccess in index.php?page=... umgesetzt.
Die URL mit "subpages" sind die, mit denen Du den reinen Inhalt der Subpage bekommst und die Du für Ajax brauchst - das sind zwei verschiedene Dinge.
wenn ich auf den Zurück-Button klicke, geht zwar oben in der Adresszeile die URL zurück auf den vorherigen string, doch der Inhalt natürlich noch nicht.
Ups? Noch ein Hirnschaden von mir? Ich hätte erwartet, dass der Browser dann diese URL abruft. Um zu sehen, was da genau passiert, müsste ich deinen Stand online sehen - geht das? Ich mag es nicht nicht nachprogrammieren. Im Moment scheint bei Dir was eine Endlosschleife zu drehen - entweder der Hoster oder deine Seite. Direkte Aufrufe auf /subpages Seiten gehen, aber Aufrufe über die index.php bleiben hängen.
Rolf
sumpsi - posui - obstruxi