La modifica di href con jQuery non attiva più uno stile: visitato
-
10-07-2019 - |
Domanda
Il mio sito di SharePoint deve preservare lo stile a: visitato definito nei CSS per i collegamenti. Ho aggiunto il seguente codice, che aggiunge " & amp; Source = / " ad ogni href. Sembra che cambiando href tramite jQuery, solo il browser "vede". l'originale href e quindi non innesca mai lo stile a: visitato in quanto non c'è corrispondenza ...
$("table[class='ms-listviewtable'] td[class='ms-vb2'] a")
.removeAttr("onclick")
.attr('href', function(){
return $(this).attr('href') + '&Source=/';
});
Soluzione
Sembra che IE non supporti gli stili : visitati
su collegamenti aggiornati dinamicamente. Ho testato solo IE8 ma se non funziona nell'ultima versione, non mi aspetto che funzioni in IE 6/7
IE supporta solo lo scenario più semplice in cui un visitatore fa clic su un collegamento che passa a una pagina diversa e quindi fa clic sul pulsante Indietro per tornare alla pagina precedente. Solo allora il link visualizza il suo stile : visitato
.
Funziona perfettamente su Firefox 3; i collegamenti sono disegnati correttamente anche quando i loro attributi href
vengono aggiornati tramite javascript.
Ho creato una pagina di prova che ti consente di provare vari link e metodi: http://jsbin.com/ odoqo (modificabile tramite http://jsbin.com/odoqo/edit )
Nota: ho usato solo la pagina di prova in Firefox 3 e IE 8, probabilmente si romperà in IE 6/7
Altri suggerimenti
Dai un'occhiata a questa domanda / risposta:
Dopo aver visitato i link , Firefox salta selettivamente il cambio di stato o uno: stile visitato
L'aggiunta del parametro della stringa di query fa sì che il browser lo veda come un URL completamente diverso, che non è stato visitato. Il browser non ha modo di sapere che il parametro Source non cambia la destinazione del collegamento.
Un'altra cosa da vedere è quanto siano specifici i tuoi stili - a volte "tabella a" sostituirà "a: visitato" quindi è necessario " tabella a: visitato " anche.