Всем здравствуйте. Столкнулся с необходимостью определить, была ли посещена ссылка или нет. Для этого делаю visited-стиль, назначаю его ссылке, а затем проверяю, если цвет у ссылки как у стиля, значит ссылка посещена. Такое работает во всех браузерах, кроме Chrome: в нём цвет у посещенной и не посещенной ссылок одинаковый. Бьюсь над вопросом уже который день, идей больше нет. Либо это баг хрома, либо у него стоит какая-то защита. Ниже код:
<html>
<head>
<style>
.my a:visited {color: #800080;}
</style>
<script>
function getStyle(elem, name) {
// J/S Pro Techniques p136
if (elem.style[name]) {
return elem.style[name];
} else if (elem.currentStyle) {
return elem.currentStyle[name];
}
else if (document.defaultView && document.defaultView.getComputedStyle) {
name = name.replace(/([A-Z])/g, "-$1");
name = name.toLowerCase();
s = document.defaultView.getComputedStyle(elem, "");
return s && s.getPropertyValue(name);
} else {
return null;
}
}
</script>
</head>
<body>
<a href="http://google.com" class="my" id="my">google</a>
<script>
var obj=document.getElementById('my');
alert(getStyle(obj, 'color'));
</script>
</body>
</html>
Разъясню. Мы выводим ссылку
http://google.com с классом my. Далее, просто выводим свойство color алертом. У посещенной и не посещенной ссылок цвет различается (у посещенной становится #800080 или rgb[85, 26, 139]). Но только не в Хроме - в нём цвет
Буду благодарен за помощь.