Wie erkenne ich eine URL-Änderung über AJAX ohne Neuladen in jQuery?

8

Ich habe ein Userscript (für Chrome), mit dem ich die Übungsseiten von duolingo für mich formatiere. Es wendet nur eine einzelne Zeile von CSS mit

an %Vor%

Und das funktioniert gut, wenn ich das erste Mal auf die Seite komme. Sie verwenden jedoch Ajax, um das erneute Laden von Seiten zu vermeiden. Und die URL ändert sich . Wenn ich das feststelle, kann ich die CSS-Änderung aktualisieren und nicht die Formatierung mit diesem Site-Navigationsmuster verlieren.

Jeder zufällig eine gute Möglichkeit, es zu erkennen?

edit: Volles Benutzer-Skript, das die populäre Lösung implementiert, auf die zuerst einige hingewiesen wurden (was nicht funktioniert):

%Vor%

Bearbeiten # 2:

Für Kopfgeld

Bitte stellen Sie eine funktionierende Lösung zur Verfügung, die keine externen Bibliotheken lädt (ich möchte wissen, was ich vermisse, nicht in einer schwarzen Box) und das Problem mit Ereignissen lösen (keine intervallbasierte Lösung). Wenn Ereignisse (bizarr) nicht verwendet werden können, geben Sie bitte die Korrekturlösung und den Grund an, warum keine Ereignisse ausgelöst werden.

    
roberto tomás 26.02.2016, 15:14
quelle

5 Antworten

2

Um die URL zu ändern, verwendet Duolingo history.pushstate. Ich empfehle Ihnen galambalazs Antwort auf ähnliche Frage

Dies ist sein Code:

%Vor%     
sulest 08.03.2016, 15:54
quelle
1

Benutze es so:

%Vor%     
Atif Tariq 26.02.2016 15:24
quelle
1

Da Sie nur das Styling anpassen, verwenden Sie besser Stylish Chrome-Erweiterung, mit der Sie CSS manipulieren können. Sie würden dann

hinzufügen %Vor%

Hinweis @-moz-document folgt der Konvention "userstyles" und kann in Chrome importiert werden. Es gibt tatsächlich ein paar veröffentlichte Benutzer-Styles für Duolingo bereits:)

    
o.v. 14.03.2016 09:09
quelle
0

Es scheint auch ein Plugin zu geben, das dasselbe erlaubt, wenn das hashchange -Ereignis auf window scheitert.

    
Prophecies 26.02.2016 15:21
quelle
0

Sie können nach jeder URL-Änderung suchen, indem Sie die URL überprüfen und sehen, ob diese der vorherigen URL entspricht, jede Sekunde. Es könnte so aussehen:

%Vor%     
Andrew 26.02.2016 15:24
quelle

Tags und Links