2009-12-28 16 views
0

J'ai une question sur le lien href, essayé googler, mais ne pouvait pas trouver beaucoup d'informations à ce sujet. J'ai un lien href comme ceci:href lien à # question

<a href='#' onclick='openSerialWindow();return false;'><h:outputText value="#{i18n.regFindSerialNumber}" /></a> 

précédemment le # a été remplacé par le page.htm qu'il doit être lié et provoqué une erreur lorsque l'utilisateur a cliqué droit sur le lien et choisissez « Open in new window/languette'. Après avoir remplacé le page.htm par # cela fonctionne bien, l'utilisateur peut même r/c et l'ouvrir dans un nouvel onglet/fenêtre.

Si l'utilisateur a simplement cliqué sur le lien des deux façons ci-dessus travaillé (le # et page.htm), donc je me demande quelle est la vraie signification de #?

merci.

Répondre

2

# est un hachage d'ancrage et pointe vers le haut de la page en cours.

Vous pouvez créer des ancres dans votre document comme ceci: <a name='anchor'></a>, puis y accéder en ajoutant #anchor à l'URL de la page. Le navigateur va sauter à la position sans recharger.

Si la liaison à page.htm a généré une erreur, alors page.htm est un lien incorrect.

L'attribut href est disponible uniquement en tant que solution de repli au cas où il n'y aurait pas de Javascript. Javascripts return false; empêche l'exécution du lien. Lier à # signifie que si javascript est désactivé, rien ne se passera en cliquant sur le lien, sauf que le navigateur va passer en haut de la page.

+2

De plus, à moins que quelque chose ** REQUIS ** javascript au travail (par exemple un lien ajax), vous devez toujours utiliser l'URL valide pour la page prévue comme 'href' et le jsut renvoie false de votre onclick - de cette façon la page dégrade pour ceux qui n'ont pas JS pour une raison quelconque. – prodigitalson

+0

Liaison à page.htm SEULEMENT donne une erreur 404 lorsque l'utilisateur clique droit et choisit «Ouvrir dans un nouvel onglet/fenêtre», si le lien est simplement cliqué, il n'y a pas d'erreur, cela fonctionne très bien. alors qu'avec le #, cela fonctionne dans les deux sens. – msharma

0

Voir: http://www.w3.org/TR/html4/struct/links.html

A # indique un lien vers une ancre [nom] dans une page.

Un <A> qui appelle du javascript ne fonctionne généralement pas avec la commande "ouvrir dans une nouvelle fenêtre/tabulation".