2016-04-05 8 views
2

私はいくつかの生成されたコンテンツを作成する必要があるいくつかのCSSを書いています。私はなぜ、私は一緒に見えることができません:訪問したと::後?

.foo:visited::after { 
    display: inline; 
    content: " visited"; 
} 

ただし、効果はありません。

セレクターを.foo::afterに変更すると機能します。

同様に、.foo:visitedの私のスタイルが有効です。

サファリWebインスペクタは、自分のスタイルを:visited::afterのように表示しているようです。

生成されたコンテンツが表示されないのはなぜですか?

答えて

2

ブラウザでは、訪問したリンクで変更できるスタイルが制限されています。JavaScriptを使用してリンクの現在の色を検索すると、あなたにも嘘をつきます。

なぜですか?

そうでなければ、scumbag-advertising.example.comで、ブラウザの履歴にどのウェブサイト(または少なくともURL)があるかを確認するJavaScriptを実行できます。 CSS :visitedセレクタが図のように、ユーザーの歴史を歩いてgetComputedStyle()または他の技術を使用することによって、サイトがユーザーの履歴を照会するための方法をされた

歴史的に、:詳細については

は、:visited on MDNthis longer explanation of how this privacy hole was closedを見ますユーザーが訪問したサイトを特定する。これは迅速に行うことができ、ユーザがウェブ上でどこにいたのかを判断できるだけでなく、ユーザのアイデンティティに関する多くの情報を推測することもできます。

何年も前、ブラウザは、この制限を修正し、色を制限することによってこの穴にパッチを当てました。

関連する問題