Показать сообщение отдельно
  #1 (permalink)  
Старый 23.02.2011, 10:12
Новичок на форуме
Отправить личное сообщение для dmitryf Посмотреть профиль Найти все сообщения от dmitryf
 
Регистрация: 23.02.2011
Сообщений: 1

Chrome-задачка. Определить цвет visited-ссылки
Всем здравствуйте. Столкнулся с необходимостью определить, была ли посещена ссылка или нет. Для этого делаю 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]). Но только не в Хроме - в нём цвет

Буду благодарен за помощь.

Последний раз редактировалось dmitryf, 23.02.2011 в 10:24.
Ответить с цитированием