2010-09-12 5 views
6

Mon application est une application iframe, donc quand l'utilisateur change de page, il ne se retrouve pas automatiquement au sommet. Pour combattre cette page pour charger que j'appellejavascript detect # in url

window.location.hash = 'tophash' 

J'ai trouvé cependant sur quelques rares cas que je dois prendre l'utilisateur à une partie spécifique de la page. Donc je fais une url aveC#anotherID à la fin. Le problème est actuellement qu'ils sont pris à Tophash sur le chargement de la page.

Ce que je besoin est s'il y a un hachage dans l'URL ne fonctionne pas window.location.hash = 'tophash'

Ma question est ... comment puis-je DeTech la présence d'un # dans l'URL?

Répondre

3

L'interrogation de la propriété hash avant de la définir devrait faire l'affaire.

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

Ce n'est pas '== null' lorsqu'il est vide, du moins pas sur Chrome (http://jsbin.com/ecela4). Il devrait * être * une chaîne vide (et est sur Chrome: http://jsbin.com/ecela4/2), mais je coderais probablement défensivement et irais avec '==" "'. –

+0

hmmm == null n'a pas fonctionné == '' a cependant fait – Starlin

+0

@ T.J. bon point! Changé à un chèque «long» et ajouté un chèque pour un seul '#' juste pour s'assurer - Chrome enlève solitaire '#' es, mais je ne ferais pas confiance à tout le monde –