2016-07-08 12 views
0

Ich baue gerade eine Ajax-Seitenumbruch, die die Seitenzahl in die URL lädt und Geschichte ermöglicht. Die Seitennummerierung selbst funktioniert und lädt die nächsten Elemente im DOM. Ich bin jedoch auf einige Probleme gestoßen, die von der ursprünglichen URL abhängen. Ich benutze die expression engine, die dynamisch die Links für Seiten und die Paginierung erzeugt, die entweder mit oder ohne einen nachgestellten Schrägstrich sein können;Verarbeiten von Segmenten einer URL beim Klicken mit JavaScript

www.mysite.com/category/entry/title 

oder

www.mysite.com/account/user/1/ 

So wie ich die AJAX Paginierung Arbeits haben, ist ein ‚#‘ an die URL vor dem letzten Segment des gerenderten Paginierung Link hinzuzufügen, die die nächste Seite löst, indem zu laden Ajax.

Die Paginierungslinks sind absolute Pfade, auf die ich keine Kontrolle habe. Ich habe das Skript angewiesen, die URL zu teilen und das '#' und das letzte Segment von dem angeklickten Link zu der bestehenden URL hinzuzufügen. Dies macht als;

www.mysite.com/account/user/1/#p10 

und die ajax Seitennummerierung funktioniert gut. Wenn es jedoch keinen abschließenden Schrägstrich gibt, wird er wie folgt dargestellt:

www.mysite.com/category/entry/title#p10 

, die die korrekte Seite

Ich kämpfe nicht geladen werden kann eine bedingte zu schaffen, die vor dem Split Link a ‚/‘ bis zum Ende der ursprünglichen URL fügt hinzu, falls nicht bereits vorhanden .

Ebenso habe ich experimentiert mit include '/ #' innerhalb des Codes, aber die dann den Link als darstellt;

www.mysite.com/#p10 

den Rest der

Below

URL fehlt aus dem JavaScript-Schnipsel ist ich

$(wrapper).on("click", options.link, function(e) { 
e.preventDefault(); 
var linkPath = $(this).attr('href').split("/").pop(); 
window.location = '#' + linkPath; 
}); 
+0

'window.location.hash' vielleicht? – gcampbell

Antwort

0

Euh bin mit nicht sicher, das ist, was du meinst, aber:

if (url.charAt(url.length - 1) !== '/') url += '/' 

Und Sie können die vollständige aktuelle URL mit window.location.href Window.loca bekommen Da es sich bei object um ein Objekt handelt, versuchen Sie in dieser Situation immer, den Hash oder href oder querypart für die saubersten Ergebnisse separat zu aktualisieren.

+0

Danke, ja, das ist die Art von Sache, die ich versucht habe zu tun, aber ich bin mir nicht sicher, wo es in den Fluss passt und es scheint zu brechen das Skript stoppt bei Standard-Fehler mit keine Aktion beim Klicken auf die Seitennummerierung Links. –

+0

Haben Sie versucht, 'window.location.hash = '#' + linkPath' als gcampbell vorgeschlagen? Es würde verhindern, mit "www.mysite.com/# p10" zu enden. – Shilly

+0

Danke, obwohl es nichts geändert hat. –