質問

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

a{
   color: blue;
}

a:visited{
   color: red !important;
}

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

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

各リンクでは、Firefoxの訪問されたリンクのためにすべて赤く戻りますが、Chromeではすべて青に戻ります。

JavaScriptを使用してChavaScriptを使用して、訪問されたリンクを見つける方法を実装する方法を疑問に思っていました。 jQueryコードまたは通常のJavaScriptコードは問題ありません。前もって感謝します。

役に立ちましたか?

解決

a_horse_with_no_nameは正しいです。 :visited セキュリティの問題は、気の利いたデモの後、2010年にブラウザベンダーによって修正されました(spyjax;もう上がっていない)は、任意のWebページが特定のURLにアクセスしたかどうかを発見できることを実証しました。あなたはそれを確認することができます 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');

Chrome拡張機能の場合、ユーザーがURLにアクセスしたかどうかを検出する場合は、リクエストする必要があると思います。 "history" 許可と電話 chrome.history.getVisits.

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