2009-05-07 16 views
4

Mon site SharePoint doit conserver le style a: visited défini en CSS pour les liens. J'ai ajouté le code suivant, qui ajoute "& Source = /" à chaque href. Il semble qu'en changeant le href via jQuery, le navigateur ne « voit » le href original et déclenche donc jamais le style a: visité car il n'y a pas de match ...La modification de href avec jQuery ne déclenche plus de: style visité

 $("table[class='ms-listviewtable'] td[class='ms-vb2'] a") 
      .removeAttr("onclick") 
      .attr('href', function(){ 
       return $(this).attr('href') + '&Source=/'; 
      }); 

Répondre

3

Il semble que IE ne prenne pas en charge les styles :visited sur les liens mis à jour dynamiquement. J'ai seulement testé IE8 mais si cela ne fonctionne pas dans la dernière version, je ne m'attends pas à ce qu'il fonctionne dans IE 6/7

IE ne supporte que le scénario le plus basique où un visiteur clique sur un lien qui navigue vers une page différente, puis clique sur le bouton de retour pour revenir à la page précédente. Ce n'est qu'alors que le lien affiche son style :visited.

Cela fonctionne parfaitement dans Firefox 3 cependant; les liens sont stylés correctement même lorsque leurs attributs href sont mis à jour via javascript.

J'ai créé une page de test qui vous permet d'essayer différents liens et méthodes: http://jsbin.com/odoqo (modifiable via http://jsbin.com/odoqo/edit)

Note: Je ne l'ai utilisé la page de test dans Firefox 3 et IE 8, il se cassera probablement dans IE 6/7

1

Ajout du paramètre de chaîne de requête rend le navigateur voir comme une URL complètement différente, celle qui n'a pas été visité. Le navigateur n'a aucun moyen de savoir que le paramètre Source ne change pas la destination du lien. Une autre chose à regarder est la spécificité de vos styles - parfois "table a" remplacera "a: visited" et vous aurez besoin de "table a: visited" également.