2010-02-05 11 views
3

J'utilise Zend, PHP, AJAX, JQuery dans mes projets. La question est comment puis-je forcer à ne pas afficher un lien sur la barre d'état du navigateur lorsque je souris sur un lien sur ma page Web.Comment masquer les liens dans la barre d'état du navigateur lorsque vous passez la souris sur les liens d'une page Web?

Meilleur exemple est sur ce site, lorsque vous passez la souris sur le lien de vote sur ce site, il ne montre pas le lien et après le clic, les votes ont augmenté sans actualiser la page.

Merci

+1

Veuillez ne pas faire cela. Très peu de gens remarqueront, sauf ceux qui seront ennuyés par le comportement non standard. Si vous parvenez à le masquer, les utilisateurs peuvent toujours obtenir les informations via d'autres méthodes. – Quentin

+0

Je pensais que c'est bon pour des raisons de sécurité, lorsque vous cliquez sur le lien up-vote, le lien n'apparaît à aucun endroit et le vote est stocké dans la base de données. de toute façon merci – NAVEED

Répondre

7

Sur pile Dépassement, vous ne voyez pas d'adresse, car ce n'est pas un lien (c'est-à-dire que ce n'est pas une ancre). C'est une travée, une image ou un autre élément, avec un gestionnaire d'événement onclick. Ceci est le seul moyen de garantir l'absence de texte de barre d'état dans tous les navigateurs, contrairement à la méthode JavaScript habituelle de configuration de window.status = ""; n'a aucun effet dans la plupart des navigateurs ces jours-ci.

Ainsi, par exemple ...

[Html] 
<img id="clickme" src="myimage.png" alt="My Image" title="Vote"> 

[JavaScript (jQuery)] 
$("#clickme").click(function() { alert("You clicked me"); }); 
3

La mise en évidence de la barre d'état se produit uniquement lorsque vous utilisez un élément <a> avec un ensemble href.

Si vous utilisez du JavaScript pur pour ouvrir votre lien et que vous n'attribuez pas d'attribut href, rien ne s'affichera dans la barre d'état.

+1

... et vous violerez la règle 2: http://icant.co.uk/articles/pragmatic-progressive-enhancement/#build – Quentin

+1

Vrai, mais selon le scénario, il peut ne pas importer à l'OP. Je ne vois pas de moyen fiable de le faire sans enfreindre une règle. –

0

si vous pouvez voir (voir la source), le vote en lien sur le côté est pas un lien, il est une image. Si vous cliquez dessus, il déclenche un appel de fonction ajax sur ce lien, https://stackoverflow.com/posts/2207467/vote/, qui met à jour la base de données.

7

Les anciens navigateurs avaient quelque chose comme window.status = ""; où vous pouviez envoyer des messages à la barre d'état, et masquer efficacement les messages normaux.

Ceci n'est plus supporté par la plupart des navigateurs. Donc, si vous utilisez un lien hypertexte - ou plus précisément un élément d'ancrage <a> - avec un attribut href, il n'y a pas moyen de contourner la barre d'état.

Si vous consultez le code HTML pour SO, vous verrez que le lien "lien" n'est pas un lien mais une image avec des gestionnaires d'événements javascript affectés à l'événement onclick.

Alors, pourquoi le curseur se transforme-t-il en un doigt pointé lorsque vous passez la souris sur le bouton «Voter vers le haut»? C'est à cause de la propriété CSS cursor.

.vote img { 
    cursor:pointer; 
} 

Ce CSS sort de la feuille de style 'all.css'.