2010-08-26 5 views
1

Si j'ai une fonction comme ceci:Appel des fonctions JS à partir de liens dans IE?

function foo() 
{ 
    //... 
    return false; 
} 

je peux l'appeler comme ceci:

<a href="#" onClick="foo()">Run Foo</a> 

Cependant, dans tous les navigateurs, ce qui met un # dans l'URL que je ne veux pas.

Ainsi, au lieu-je faire cela:

<a href="javascript:foo()">Run Foo</a> 

Ce qui fonctionne très bien en chrome, mais dans IE il charge une page contenant la chaîne false.

Quelle est la meilleure pratique ici?

Répondre

3

Vous n'avez pas besoin du protocole javascript:.

<a href="#" onclick="foo(); return false">Run Foo</a> 

est tout ce dont vous avez besoin.

+0

I se aucune raison pour que cela a été voté vers le bas. +1 –

+0

on dirait que quelqu'un vient de voter, a voté toutes les réponses. –

1

Comme @wrumbsy dit ...

Vous n'avez pas besoin du javascript: protocole.

<a href="#" onclick="foo(); return false">Run Foo</a>

... mais cela signifie que vous n'avez pas besoin d'ancrage <a> soit. Utilisez uniquement des ancres pour les hyperliens; pas pour l'interactivité améliorée par JS.

Une durée fonctionnera tout aussi bien, avec cursor:pointer; propriété CSS:

<span style="cursor:pointer;" onclick="foo(); return false">Run Foo</span> 
+0

Mais Google ne traite-t-il pas les ancres différemment que les travées? –

+0

Comment ça? Je dirais, oui, Google le fait, mais c'est exactement pourquoi vous ne voudriez pas utiliser une ancre. –

+0

@John Isaacks - ... mais c'est moins pertinent pour le référencement et plus pertinent pour l'accessibilité. –

Questions connexes