6

Chrome と Firefox のユーザー スクリプトを使用しており、ユーザーがアクセスしたリンクをチェックしています。私は持っている

a{
   color: blue;
}

a:visited{
   color: red !important;
}

ページが読み込まれるとすぐにインポートされたCSSで。私が訪れたページの a リンクは、デフォルトの青ではなく赤で表示されます。次に使用します:

alert(window.getComputedStyle(document.getElementById("myLink"), null).getPropertyValue("color"))

各リンクで、Firefox では訪問したリンクに対してすべて赤を返しますが、Chrome ではすべて青を返します。

Chrome で JavaScript を使用して、訪問したリンクの検索を実装する方法を知りたいと思っていました。Jquery コードまたは通常の JavaScript コードで問題ありません。前もって感謝します。

4

1 に答える 1

9

A_horse_with_no_name は正しいです。セキュリティの:visited問題は、2010 年にブラウザー ベンダーによって修正されました。気の利いたデモ ( Spyjax ; もはや稼働していません) が、特定の URL にアクセスしたかどうかを Web ページが検出できることを示した後です。同じドメイン内であっても、リンクで色getComputedStyleが返されなくなったことを確認できます。:visited

// Test I used within the JS console.
// :visited is no longer detectable by getComputedStyle.
function getLinkColor(url) {
  var a = document.createElement('a');
  a.href = a.textContent = url;
  document.body.appendChild(a);
  return document.defaultView.getComputedStyle(a, null).color;
}
getLinkColor('http://stackoverflow.com/questions/5394099/detect-visited-link-in-chrome');
getLinkColor('http://stackoverflow.com/some-fake-path');

"history"Chrome 拡張機能で、ユーザーが URL にアクセスしたかどうかを検出したい場合は、パーミッションを要求して を呼び出す必要があると思いますchrome.history.getVisits

于 2011-03-22T18:59:41.207 に答える