Javascript-форум (https://javascript.ru/forum/)
-   Opera, Safari и др. (https://javascript.ru/forum/css-html-browser/)
-   -   Chrome-задачка. Определить цвет visited-ссылки (https://javascript.ru/forum/css-html-browser/15350-chrome-zadachka-opredelit-cvet-visited-ssylki.html)

dmitryf 23.02.2011 10:12

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]). Но только не в Хроме - в нём цвет

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

Kolyaj 23.02.2011 10:36

Свойство попроще проверяйте, дался вам этот цвет.


Часовой пояс GMT +3, время: 02:30.