Domanda

Sto usando un utentiscript per Chrome e Firefox e sto controllando i collegamenti visitati dall'utente. io ho

a{
   color: blue;
}

a:visited{
   color: red !important;
}

Nel mio CSS importato non appena la pagina si carica. Gli A-link sulla pagina che ho visitato sono colorati di rosso anziché impostazione predefinita del blu. Quindi uso:

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

Su ogni collegamento e tutti restituiscono in rosso per i collegamenti visitati in Firefox ma in Chrome restituiscono tutti blu.

Mi chiedevo come implementare la ricerca di collegamenti visitati usando JavaScript con Chrome. Il codice jQuery o il normale codice JavaScript va bene. Grazie in anticipo.

È stato utile?

Soluzione

A_horse_with_no_name è giusto. Il :visited Il problema della sicurezza è stato risolto nel 2010 dai venditori del browser, dopo una demo elegante (Spyjax; Non è più in piedi) ha dimostrato che qualsiasi pagina Web potesse scoprire se hai visitato un determinato URL. Puoi verificarlo getComputedStyle su un link non restituisce più il :visited colore-anche all'interno dello stesso dominio:

// 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');

Per le estensioni di Chrome, se si desidera rilevare se un utente ha visitato un URL, penso che dovrai richiedere il "history" autorizzazione e chiamata chrome.history.getVisits.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top