jQueryでhrefを変更してもa:visitedスタイルがトリガーされなくなりました
-
10-07-2019 - |
質問
私のSharePointサイトは、リンク用にCSSで定義されたa:visitedスタイルを保持する必要があります。 "& Source = /"を追加する次のコードを追加しました。各hrefに。 jQueryを介してhrefを変更すると、ブラウザのみが「見る」ことができるようです。元のhrefであるため、一致するものがないためa:visitedスタイルをトリガーすることはありません...
$("table[class='ms-listviewtable'] td[class='ms-vb2'] a")
.removeAttr("onclick")
.attr('href', function(){
return $(this).attr('href') + '&Source=/';
});
解決
IEは、動的に更新されるリンクで:visited
スタイルをサポートしていないようです。 IE8のみをテストしましたが、最新バージョンで動作しない場合、IE 6/7で動作するとは思われません
IEは、訪問者が別のページに移動するリンクをクリックしてから戻るボタンをクリックして前のページに戻るという最も基本的なシナリオのみをサポートします。その場合のみ、リンクはその:visited
スタイルを表示します。
ただし、Firefox 3では完全に機能します。リンクは、 href
属性がjavascriptを介して更新された場合でも適切にスタイル設定されます。
さまざまなリンクとメソッドを試すことができるテストページを作成しました: http://jsbin.com/ odoqo ( http://jsbin.com/odoqo/edit で編集可能)
注: Firefox 3およびIE 8でのみテストページを使用しましたが、IE 6/7ではおそらく壊れるでしょう
他のヒント
この質問/回答をご覧ください:
クエリ文字列パラメータを追加すると、ブラウザはまったくアクセスしていないURLとしてブラウザに表示します。ブラウザには、Sourceパラメーターがリンクの宛先を変更しないことを知る方法がありません。
もう1つ注目すべき点は、スタイルの具体性です。 " a:visited"をオーバーライドしますしたがって、「表a:訪問済み」も必要です。