11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour, tout est dans le titre Smiley biggrin

Est-il possible de changer le lien de la barre d'état sous firefox ??

voici mon code qui marche sous IE mais pas sous Firefox :
<a
     href="javascript:fonction('parametre1','parametre2')
     onMouseOver="window.status='lien'; return true"
     onMouseOut="window.status=''; return true"
>lien</a>



est-ce que c'est faisable ou pas ?
Modifié par PoichOU (15 Dec 2005 - 15:54)
Bonjour,
Dans firefox, c'est l'utilisateur qui choisi de ne pas modifier le texte de la barre d'état.
Outil, Options, Contenu, JavaScript, Avancé, Modifier le texte de la barre d'état.
Si c'est pas coché, tu ne peux rien faire sur la barre d'état de l'utilisateur.
papillon41 => merci de l'info

20cent => histoire de ne pas afficher "javascript:fonction('parametre1','parametre2', ... , ... , ....)" dans la barre d'état, c'est moche !
Modérateur
PoichOU a écrit :
"javascript:fonction('parametre1','parametre2', ... , ... , ....)" dans la barre d'état, c'est moche !


Ce qu'il y a sur la bar d'état, c'est l'url du lien. Ce code que tu as mis ne devrait donc pas être dans le href d'un lien, mais sur le onclick (sans le "javascript:"). Par exemple :



<a href="maphoto.jpg" onclick="MaFonctionQuiTue('param1','param2');">Voir ma tronche sexy</a>


Le javascript n'a pas sa place dans l'attribut href.
il m'avait semblé que

<a href="javascript:maFonction();">lien</a>


était mieux que

<a href="#" onclick"maFonction();">lien</a>




car dans mon cas je n'ai pas d'url ...



je me serai trompé ?
Modérateur
Si tu n'as ni url ni ancre à mettre dans l'attribut href, tu dois utiliser un autre conteneur, comme un span :


<span onclick="MaFonctionQuiTue(...);">Mon texte</span>

Modifié par Tony Monast (15 Dec 2005 - 16:12)
Modérateur
Bien vu ! Hmmm... elle fait quoi au juste ta fonction ? Tu ne pourrais pas mettre un lien vers une ancre dans l'attribut href ?

En fait, ce qui me dérange avec un lien avec un href vide (#, #ancre ou javascript:mafonction), c'est que si le visiteur a désactivé son Javascript, il y aura quelque chose qui ressemble à un lien, mais qui ne fait absolument rien. Smiley confus Il faudrait peut-être générer ce pseudo lien via Javascript...

D'ailleurs, niveau sémantique, je ne crois pas que c'est une bonne chose que d'utiliser une balise de lien pour quelque chose qui n'est pas un lien. À méditer...

Je vais y penser... a+
Modifié par Tony Monast (15 Dec 2005 - 16:56)
sémantiquement je suis bien d'accord avec toi...

Et pour ce qui est du fameux "si le visiteur a désactivé son Javascript..." je suis à 200% d'accord avec ça (d'ailleurs pas facile à comprendre pour certain). Dans mon cas ce n'est pas un truc bloquant, s'il n'a pas javascript pas c'est pas grave...
Deux questions :

- Avec un tabindex sur le conteneur, ça ne marche pas ?

- Si ce n'est pas une fonction bloquante et qu'elle peut être désactivée via JavaScript, est-ce vraiment important s'il n'est pas possible de la sélectionner au clavier ?
Modérateur
20cent a écrit :
Si ce n'est pas une fonction bloquante et qu'elle peut être désactivée via JavaScript, est-ce vraiment important s'il n'est pas possible de la sélectionner au clavier ?


Non-bloquante ne veut pas dire inutile pour ceux naviguant au clavier. Je veux dire par là que selon moi, il serait important qu'on puisse y accéder via le clavier.

Et un <input type="button" onclick="..." ...> au lieu d'un lien, ca te tente pas ? Bof, je sais... Smiley rolleyes Je suis un peu occupé en ce moment pour réfléchir à ce sujet, j'y reviendrai un peu plus tard !
Modifié par Tony Monast (15 Dec 2005 - 17:31)
Bonjour,
Je vais mettre mon petit grain de sel dans la discussion :

Les liens en <a href="javascript:..."> ne sont pas une mauvaise chose s'il n'y a pas d'URL à proprement parler. Pour moi, je trouve que c'est bien mieux que <a href=@#" onclick="..."> parce que si l'utilisateur a désactivé javascript, il ne se passera rien dans le premier cas, tandis que dans le deuxième, la page est inutilement rechargée et ramenée au début du scroll.
Le span est mauvais aussi, parce qu'on ne peut pas y accéder par le clavier. Qu'on mette un tabindex ou non, ça ne changera rien du tout, c'est pas focusable point final.

Que ce soit un bouton <input ... /> ou un lien, ça ne changera rien non plus : celui qui n'a pas javascript va crorie que le bouton ne fait rien. Si on ramène tout le barda <form ...> ... </form> la page se recharge aussi par l'action du submit. Donc, même problème.

Donc presonnellement, je te conseille <a href="javascript:..."> plutôt que <a href="#" onclick="..."> si tu n'as pas d'url réelle à mettre dans le href.
Modérateur
Je partage ton point de vue QuentinC, sauf que si le lien en question ne fait rien si javascript est désactivé, il faudrait que ce lien soit généré/écrit par Javascript.

- Avec Javascript, le lien est présent
- Sans Javascript, il n'y a rien

On évite comme ca d'avoir un élément cliquable qui ne fait rien. Dans ce cas, on pourrait très bien utiliser un <input type="button" ...> ou encore un <a>, ce n'est pas si mal. Seulement, il faut que ces éléments soient créés par Javascript.
Modifié par Tony Monast (15 Dec 2005 - 18:23)
Tony Monast > tu pensais à quelque chose comme ceci ?


<script type="text/javascript">
<!--
document.write('<a href="javascript:...">...</a>');
// --></script>
<noscript>
<span>Lien désactivé</span>
</noscript>
Modérateur
Oui QuentinC, mais peut-être en modifiant le lien de cette façon :


<a href="#" onclick="LaFonction();return false;">...</a>


Avec ou sans dièse, je ne sais pas, mais avec le return false, le navigateur ne bougera pas et comme la fonction est appelée sur le onclick, on ne verra pas de javascript:blah blah dans la bar de status.
Modifié par Tony Monast (15 Dec 2005 - 19:21)
PoichOU a écrit :
Bonjour, tout est dans le titre Smiley biggrin

Est-il possible de changer le lien de la barre d'état sous firefox ??

est-ce que c'est faisable ou pas ?


écrire dans la barre de status version Gecko:
window.defaultStatus="mon info"


Sinon pour le lien avec JS, je le vois comme ça :
<a href="lien si pas js" onclick="LaFonction();return false;">...</a>

Modifié par chmel (16 Dec 2005 - 01:25)
QuentinC a écrit :
Bonjour,
Je vais mettre mon petit grain de sel dans la discussion :

Les liens en <a href="javascript:..."> ne sont pas une mauvaise chose s'il n'y a pas d'URL à proprement parler. Pour moi, je trouve que c'est bien mieux que <a href=@#" onclick="..."> parce que si l'utilisateur a désactivé javascript, il ne se passera rien dans le premier cas, tandis que dans le deuxième, la page est inutilement rechargée et ramenée au début du scroll.
Le span est mauvais aussi, parce qu'on ne peut pas y accéder par le clavier. Qu'on mette un tabindex ou non, ça ne changera rien du tout, c'est pas focusable point final.

Que ce soit un bouton <input ... /> ou un lien, ça ne changera rien non plus : celui qui n'a pas javascript va crorie que le bouton ne fait rien. Si on ramène tout le barda <form ...> ... </form> la page se recharge aussi par l'action du submit. Donc, même problème.

Donc presonnellement, je te conseille <a href="javascript:..."> plutôt que <a href="#" onclick="..."> si tu n'as pas d'url réelle à mettre dans le href.



Personnellement je hais les liens en href="javascript:". Pourquoi ? Parce qu'il m'arrive fréquemment d'ouvrir les liens dans une nouvelle fenêtre. Et comme ce genre de pseudo URI ne sont pas de vrais URI, ils ne fonctionnent pas hors de leur document. Je vote donc pour le bouton.
Modifié par Lanza (16 Dec 2005 - 09:54)