2017-06-02 1 views
-1

Ich habe ein seltsames Problem, das passiert, wenn eine Seite am Ende mit einem Hash geladen wird, z. #home oder #quotes. Einige Javascript-Fehler treten auf, wenn am Ende des Links ein Hashwert vorhanden ist. Die Seite funktioniert einwandfrei, wenn kein Hashwert vorhanden ist.Trailing Hash (#) in URL bricht einige Javascript

Live-Beispiele:

http://real-ufos.com/ - arbeitet

http: // real-ufos.com/#home - ziemlich viele Javascript Dinge kaputt (Erde Positionierung, glatte Scroll-Hash Abschnitt, Kommentar Tabs, öffnende prettyphoto Leuchtkasten usw.)

Hier ist die Skripte Datei: http: // real-ufos.com/wp-content/themes/real-ufos/js/scripts.js, die ich denke, ist am wahrscheinlichsten zu enthalten Das Thema.

(Haben die Links zu brechen, da ich nicht mehr als ein Posten kann)

Dies ist eine ähnliche Frage zu Trailing hash (#) in URL breaks some Javascript? ist - aber ich konnte meine Antwort dort nicht finden.

+0

Haben Sie in Ihrer Browserkonsole nach Fehlern gesucht? 'Uncaught Error: Syntaxfehler, unerkannter Ausdruck: a [href = # home]' –

+0

Versuchen Sie, den href-Wert in Anführungszeichen zu setzen: 'window.location.hash? 'a [href =' '+ window.location.hash +' "] '' in Zeile 46 in Ihrer' scripts.js? ver = 4.7.5', also anstelle von 'a [href = # home] 'kommt es heraus als 'a [href =" # home "]' –

+0

Woh! Das hat den Trick gemacht. Vielen Dank. – Alx

Antwort

0

Wenn auf Ihrer Seite gehen real-ufos.com/#home der Browser-Konsole einen Fehler
Uncaught Error: Syntax error, unrecognized expression: a[href=#home]

Ein CSS oder XPath-Selektor dieser Form zeigt Anführungszeichen um den Wert des Attributs haben sollte: tag[attribute="value"]

Sie können Ihre ändern scripts.js Datei in Anführungszeichen setzen

window.location.hash ? 'a[href=' + window.location.hash + ']' 
// becomes 
window.location.hash ? 'a[href="' + window.location.hash + '"]' 
//       ^      ^

Dies sollte die Syntax richtige und korrigieren Sie den Fehler machen.