Google chrome a: la imagen de fondo visitada no funciona

(antes de comenzar debo decir que sí, he hecho todas las comprobaciones de estupidez, sí, el enlace está en mi historial y ha sido visitado, etc.)

Estoy usando la versión 6.0.472.63 de Chrome, aunque es importante que funcione en todos los navegadores.

Funciona en Firefox, IE y Opera.

Básicamente, todo lo que intento hacer es cambiar la imagen de fondo de un enlace si el enlace ha sido visitado.

He hecho muchas pruebas de prueba y error, así que tengan paciencia conmigo para ver varios ejemplos.

Esto es lo que tenia originalmente

.forum_box .title a {background-image: url (../ images / f_unread.png); posición de fondo: centro de 10px; repetición de fondo: no repetición; color de fondo: transparente; color: # 2D4054; tamaño de fuente: 14px; relleno: 10px 12px 10px 44px; decoración de texto: ninguna; bloqueo de pantalla; font-weight: negrita; } .forum_box .title a: visitado {background-image: url (../ images / f_read.png); }

Funciona en todos los navegadores excepto Chrome. A continuación, intenté convertirlo en un color en lugar de una imagen.

.forum_box .title a: visitado {color de fondo: rojo; }

Lo mismo de nuevo, sin embargo, cambié el enlace a #fff en lugar de transparente y el enlace visitado cambió a rojo, por lo que aparentemente el color bg solo funciona si establece un color bg para el padre.

.forum_box .title a {background-image: url (../ images / f_unread.png); posición de fondo: centro de 10px; repetición de fondo: no repetición; color de fondo: #fff; color: # 2D4054; tamaño de fuente: 14px; relleno: 10px 12px 10px 44px; decoración de texto: ninguna; bloqueo de pantalla; font-weight: negrita; } .forum_box .title a: visitado {color de fondo: rojo; }

Sin embargo, todavía no resuelve mi problema de imagen. Entonces, en un último intento, probé esto con la esperanza de que, por alguna razón, Chrome solo funcionara cuando las mismas propiedades estuvieran presentes en ambos.

.forum_box .title a {background: #fff url (../ images / f_unread.png) centro de 10px sin repetición; color: # 2D4054; tamaño de fuente: 14px; relleno: 10px 12px 10px 44px; decoración de texto: ninguna; bloqueo de pantalla; font-weight: negrita; } .forum_box .title a: visitado {background: #fff url (../ images / f_read.png) no repetir 10px centro; }

Eso tampoco funcionó y nuevamente continuó funcionando en Firefix, Opera e IE. Así que vengo aquí a Stack Overflow muy confundido.

Cualquier ayuda sería muy apreciada!

ACTUALIZACIÓN: intenté una solución jQuery, aunque todavía no funciona. A pesar de tener: enlaces visitados y puedo confirmar su estado visitado cambiando el color de la fuente a rojo. jQuery ('a: visitado'). length devuelve 0.

preguntado el 24 de septiembre de 10 a las 12:09

Eso sería posible, por ejemplo, podría hacer jQuery ('. Forum_box .title a: visitado'). AddClass ('visitado') y luego usar la clase para diseñar. Pero asumí que habría otra solución en lugar de que Chrome tuviera fallas inherentes en una de las propiedades CSS más antiguas y básicas. -

Sé que esto no resuelve tu problema en este momento, pero siempre puedes enviar un error ... code.google.com/p/chromium/issues/entry -

¿Ha intentado utilizar el Inspector web para mostrar qué estilos se están aplicando al a:visited ¿Enlaces? (Web Inspector: ctrl + shift + i, elija 'elementos' y navegue y haga clic en los enlaces en el panel de elementos). -

Lo siento, no estoy seguro de por qué no respondí a esto antes, debí estar absorto en algo. Web Inspector no muestra ninguno de los estilos visitados, incluso el color: rojo; que funciona bien, no aparece (aunque sí aparece en estilo calculado). -

Buena pregunta. Parece que ya se ha presentado un error contra Chrome: code.google.com/p/chromium/issues/detail?id=44043. Es posible que desee agregar su confirmación allí. -

5 Respuestas

El mismo problema aqui. Cambiar la posición de fondo en un Sprite de CSS en un: visitado me funciona en Firefox 3.6 pero no en Chrome 6.

Pero probablemente pronto dejará de funcionar también en Firefox. (¿tal vez para FF 4?)

Es un problema de privacidad, y puede leer aquí un artículo de Mozilla al respecto (marzo de 2010) http://hacks.mozilla.org/2010/03/privacy-related-changes-coming-to-css-vistited/ Y el error: https://bugzilla.mozilla.org/show_bug.cgi?id=147777#c160

Creo que la única solución posible es utilizar creativamente el color de fondo en lugar de imágenes.

Respondido 01 Oct 10, 21:10

No creo que el color de fondo funcione. AFAIK el todo: el selector visitado será completamente ignorado. - Bart van Heukelom

Probablemente sea un problema de seguridad.
Mira esto post en el blog de seguridad de mozilla.
Ciertamente puedo imaginar cómo lo harían.

Respondido el 28 de Septiembre de 10 a las 03:09

Chrome parece haber desactivado css para: visitado (excepto para el color).

Esto sería para evitar el exploit de rastreo de historia.

Ver http://www.azarask.in/blog/post/socialhistoryjs/

Respondido 07 Oct 10, 17:10

Es posible que necesite sus comillas simples alrededor de su URL de img ... Los navegadores son divertidos cuando se preocupan por las comillas y cuando no ...

Respondido el 24 de Septiembre de 10 a las 17:09

Eso no hizo ninguna diferencia, ¡pero gracias por la sugerencia! - Juan Mellor

Lo siento, no fue más útil, esto parece un problema muy extraño. Como dije anteriormente, presentaría un error en el proyecto web de chromium y creo que solucionarían algo como esto con bastante rapidez, ya que es una funcionalidad básica de html / css. - EJC

Esto se hace por razones de seguridad, ya que era posible cargar una gran cantidad de imágenes diferentes y detectar qué enlaces había visitado el usuario, cualquier propiedad enviando una solicitud específica, o cargando un recurso específico, dependiendo de lo que técnicamente haya visitado el usuario. como una cuestión de seguridad, ya que puede filtrar los intereses personales del usuario.

https://blog.jeremiahgrossman.com/2006/08/i-know-where-youve-been.html

respondido 23 nov., 18:17

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.