2010-09-12 12 views
6

Meine Anwendung ist eine Iframe-App, wenn der Benutzer die Seite wechselt, werden sie nicht automatisch an die Spitze gebracht. Um dies zu bekämpfen, auf Seite load IJavaScript erkennen # in URL

window.location.hash = 'tophash' 

Ich habe jedoch auf einigen seltenen Fällen finde ich den Benutzer auf einen bestimmten Teil der Seite zu nehmen. Also mache ich am Ende eine URL mit #anotherID. Das Problem besteht derzeit darin, dass sie beim Laden der Seite zum Taumeln gebracht werden.

Was ich brauche, ist, wenn es einen Hash innerhalb der URL es läuft nicht window.location.hash = 'tophash'

Also meine Frage ... ist, wie DETECH ich das Vorhandensein einer # in der URL?

Antwort

3

Die Eigenschaft hash vor der Einstellung abfragen sollte die Aufgabe erledigen.

if ((!window.location.hash) || (window.location.hash == "#")) 
window.location.hash = "tophash"; 
+1

Es ist nicht '== null' wenn es leer ist, zumindest nicht in Chrome (http://jsbin.com/ecela4). Es sollte * eine leere Zeichenfolge sein (und ist in Chrome: http://jsbin.com/ecela4/2), aber ich würde wahrscheinlich defensiv codieren und mit '==" "' gehen. –

+0

hmmm == null hat nicht funktioniert == '' tat jedoch – Starlin

+0

@ T.J. guter Punkt! Geändert zu einem 'length' check und hinzugefügt einen Check für ein einsames' # 'nur um sicherzustellen - Chrome nimmt einsame' # 'es, aber ich würde nicht jedem vertrauen –