Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Chrome-задачка. Определить цвет visited-ссылки, определить, была ли посещена ссылка 
:(
    Опции темы
dmitryf
Дата 23.2.2011, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 23.2.2011

Репутация: нет
Всего: нет



Всем здравствуйте. Столкнулся с необходимостью определить, была ли посещена ссылка или нет. Для этого делаю 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.2.2011, 10:24
PM MAIL   Вверх
Amphiluke
Дата 23.2.2011, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 35
Всего: 112





Цитата(dmitryf @  23.2.2011,  13:19 Найти цитируемый пост)
Код

<style>.my a:visited {color: #800080;}</style>

Вы в курсе, что этот стиль назначается не вашей ссылке, а несуществующей ссылке, помещенной в контейнер с классом "my" ?

Попробуйте так:
Код

.my:visited {color: #800080;}

PM   Вверх
dmitryf
Дата 23.2.2011, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 23.2.2011

Репутация: нет
Всего: нет



Цитата(Amphiluke @ 23.2.2011,  10:29)
Цитата(dmitryf @  23.2.2011,  13:19 Найти цитируемый пост)
Код

<style>.my a:visited {color: #800080;}</style>

Вы в курсе, что этот стиль назначается не вашей ссылке, а несуществующей ссылке, помещенной в контейнер с классом "my" ?

Попробуйте так:
Код

.my:visited {color: #800080;}

Видимо, в браузерах сделана защита от подобных ошибок. Я поправил, ничего не изменилось. Работает везде, кроме Chrome...

Добавлено через 6 минут и 37 секунд
В Хроме, если делать инспекцию элемента через отлидчик, то в Computed Style четко прописан цвет #800080; А вот если брать его яваскриптом, то выдается rgb(0, 0, 238), т.е. цвет не посещенной ссылки...
PM MAIL   Вверх
Amphiluke
Дата 23.2.2011, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 35
Всего: 112



Не знаю, у меня в Chrome изменение цвета ссылки нормально детектируется. smile

Добавлено через 1 минуту и 41 секунду
Правда, у меня Chrome очень старый, может быть, в новых версиях что-то изменено…
PM   Вверх
dmitryf
Дата 23.2.2011, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 23.2.2011

Репутация: нет
Всего: нет



Да, не уточнил. Версия Chrome 9.0.597.98 На более старых не проверял.
PM MAIL   Вверх
SelenIT
Дата 23.2.2011, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



Это фича, во имя прекращения паники. В новом FF (4-м) аналогично


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0905 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.