Pregunta

Estoy usando un UserScript para Chrome y Firefox y estoy revisando los enlaces que han sido visitados por el usuario. tengo

a{
   color: blue;
}

a:visited{
   color: red !important;
}

En mi CSS importado tan pronto como se carga la página. Los enlaces A en la página que he visitado son de color rojo en lugar de predeterminado de azul. Luego uso:

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

En cada enlace y todos vuelven rojo para los enlaces visitados en Firefox, pero en Chrome todos regresan azul.

Me preguntaba cómo implementar la búsqueda de enlaces visitados usando JavaScript con Chrome. El código jQuery o el código JavaScript normal están bien. Gracias por adelantado.

¿Fue útil?

Solución

A_horse_with_no_name es correcto. los :visited El problema de seguridad fue solucionado en 2010 por los proveedores del navegador, después de una ingeniosa demostración (Spyjax; ya no fue) demostró que cualquier página web podría descubrir si ha visitado alguna URL dada. Puedes verificar que getComputedStyle en un enlace ya no devuelve el :visited Color, incluso dentro del mismo 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');

Para las extensiones de Chrome, si desea detectar si un usuario ha visitado una URL, creo que tendrá que solicitar el "history" permiso y llamada chrome.history.getVisits.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top