jQueryでhrefを変更してもa:visitedスタイルがトリガーされなくなりました

StackOverflow https://stackoverflow.com/questions/836974

質問

私の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:訪問済み」も必要です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top