2010-11-15 2 views
4

J'ai une balise d'ancrage dans mon HTML qui est utilisée pour un événement javascript. Le code ressemble à ceciComportement aléatoire des balises d'ancrage

<a href="#" onclick="myScript()">run</a> 

Cependant, lorsque je clique sur le script, la première fois les liens sont cliqués il recharge la page. Le deuxième et les clics suivants, il exécute le javascript.

Ma première pensée était que c'était quelque chose à voir avec l'URL

Mon URL est

http://localhost/mypage.php?someid=1234567 

Mais, après avoir cliqué sur le lien javascript pour la première fois, il se transforme en

http://localhost/mypage.php# 

Ma seule solution pour le moment est de changer la balise d'ancrage en une travée, et d'imiter le comportement en utilisant javascript et css, mais c'est une solution piratée.

Pourquoi cela se produirait-il? Est-ce qu'il y a un moyen d'éviter cela?

Mon application est une application Java Struts, qui s'exécute également dans un cadre.

Répondre

7

La raison en est que vous n'arrêtez pas l'action par défaut du lien, qui est d'aller à l'URL #. Renvoie la valeur false de l'événement:

<a href="#" onclick="myScript();return false;">run</a> 
0

ou de créer le href javascript :; au lieu de #

<a href="javascript:;" onclick="myScript();">run</a> 
Questions connexes