Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.08.2012, 23:55
Профессор
Отправить личное сообщение для Почемучкин Посмотреть профиль Найти все сообщения от Почемучкин
 
Регистрация: 11.05.2011
Сообщений: 241

Как определить была ли ссылка посещена
Как определить программно в своем скрипте - посещалась ссылка или нет?
Я могу создать стиль, в котором visited links изменят цвет, например, и браузер сам найдет посещенные ссылки и изменит их свойства.

А как моему скрипту определить visited links?
Ответить с цитированием
  #2 (permalink)  
Старый 30.08.2012, 02:31
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,587

Сообщение от Почемучкин Посмотреть сообщение
Я могу
Не можете.

Из-за политики безопасности никаким образом не возможно со стороны скрипта определить посещенные страницы.
Какие бы стили вы не применяли, при попытке получения стиля браузер вам выдаст стандартный стиль ссылки, а не текущий, каким бы он ни был.
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 30.08.2012, 06:03
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,587

- FF 3.6
Ещёб ff2.0 взяли.
С четвёртого по-мойму и пофиксили.

Опера - хз, как там в актуальных версиях(>11)/
IE - а что вы ожидали от осла?

Но вообще, те то заботится о собственной безопасности - юзают только актуальные версии.

Так и быть, поправку внесу: никаким образом это нельзя сделать кроссбраузерно.
__________________
29375, 35

Последний раз редактировалось Aetae, 30.08.2012 в 06:08.
Ответить с цитированием
  #4 (permalink)  
Старый 04.09.2012, 20:08
Профессор
Отправить личное сообщение для Почемучкин Посмотреть профиль Найти все сообщения от Почемучкин
 
Регистрация: 11.05.2011
Сообщений: 241

Дзен-трансгуманист,
Я в принципе хотел что-то подобное (просто, скажем, высоту ссылок изменить или что-то в этом духе), но Ваш код интереснее конечно.
К сожалению, в FireFox 13.01 не работает: alert(spy.offsetWidth) всегда выдаёт 0 .
А Вы в каком браузере проверяли?

Вообще - FireFox для "A:visited" меняет цвет, но не ширину! Просто для тэга "A" меняет и ширину без проблем.
То есть ограничение похоже в том, что нельзя изменять какие-то свойства, по которым можно узнать посещалась ли ссылка (цвет не в счет - его узнать нельзя, imho, даже несмотря на возможность изменения цвета).

Интересно, а у всех ли объектов DOM FireFox успел перекрыть доступ из-под a:visited и ко всем ли их свойствам, или же есть какие-то дыры?

Последний раз редактировалось Почемучкин, 04.09.2012 в 20:48.
Ответить с цитированием
  #5 (permalink)  
Старый 04.09.2012, 22:22
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,587

Поищи. Найдёшь - запости на багтрекер фф чтоб потешить тщеславие, или продай секрет.(если найдёшь кому)
__________________
29375, 35
Ответить с цитированием
  #6 (permalink)  
Старый 05.09.2012, 06:26
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,587

Сообщение от Дзен-трансгуманист Посмотреть сообщение
Тестировал Хром 11, дак там для псевдокласса visited работает только стиль color
Не только. Если у изначальной ссылки задан бг и бордер, то ещё и их.
Вот тест:
<!DOCTYPE HTML>
<html lang="ru-RU">
<head>
	<meta charset="UTF-8">
	<style type="text/css">
	body,html{
		background: #000;
	}
	a{
		color: #aaa;
		display: block;
		background: #222;
		border:4px  solid;
		border-radius: 15px;
		box-shadow: 5px 5px #fff;
		float:left;
		margin:5px auto;
		padding:15px;
		font:30px/35px Impact, serif;
	}
	a::after{
		content: " link!"
	}
	
	a:visited{
		color: #afa;
		display: inline-block;
		background: #262;
		border:4px dotted;
		border-radius: 0;
		box-shadow: 0 0 0 12px #0f0;
		float:right;
		margin:10px;
		padding:45px;
		font:10px/15px monotype;
	}
	a:visited::after{
		content: " visited!"
	}
	
	
	</style>
</head>
<body>
	<script type="text/javascript">
		document.write('<a href="#'+Math.random()+'">Ссылка</a>')
	</script>
</body>
</html>
__________________
29375, 35
Ответить с цитированием
  #7 (permalink)  
Старый 05.09.2012, 07:37
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,587

А я и не говори что можно. Я просто уточнил твой пост.)
__________________
29375, 35
Ответить с цитированием
  #8 (permalink)  
Старый 08.09.2012, 22:07
Профессор
Отправить личное сообщение для Почемучкин Посмотреть профиль Найти все сообщения от Почемучкин
 
Регистрация: 11.05.2011
Сообщений: 241

Сообщение от Дзен-трансгуманист Посмотреть сообщение
Но, в принципе, я солидарен с таким положением дел, что разработчики браузеров принудительно отказывают в поддержке visited
...
Нехорошо давать возможность эксплуатировать функционал браузера для получения настолько приватной информации.
А я вот с настолько радикалистским подходом разработчиков не согласен. По крайней мере нужно было дать возможность включать-выключать эту функциональность самому пользователю.
Большинству пользователей особо нечего скрывать и они намного больше информации о себе сливают другими способами. Это пригодится очень малому количеству людей поэтому стоило включать только в режиме повышенной безопасности.
Зато, определяя (не)посещенные ссылки или изменяя их свойства, а не только цвет, можно было бы существенно улучшить интерфейс пользователя. (Чего я и хотел сделать сейчас для себя, но не дают же).
Здесь IE8 мне больше по душе, чем Firefox/Chrome - надеюсь, в новых версиях Микрософт ничего не поменяет.
Ответить с цитированием
  #9 (permalink)  
Старый 08.09.2012, 22:12
Профессор
Отправить личное сообщение для Почемучкин Посмотреть профиль Найти все сообщения от Почемучкин
 
Регистрация: 11.05.2011
Сообщений: 241

Сообщение от Дзен-трансгуманист Посмотреть сообщение
Aetae,

Короче, данный сабж это тот случай, когда об этом нужно забыть и выкинуть из головы.
Мне кажется, ещё не все способы исчерпаны. Мне тут пришла в голову идея, правда это через задницу и нужно изучить кое-что, чтобы точно узнать.
Ответить с цитированием
  #10 (permalink)  
Старый 08.09.2012, 22:41
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,587

Сообщение от Почемучкин Посмотреть сообщение
Зато, определяя (не)посещенные ссылки или изменяя их свойства, а не только цвет, можно было бы существенно улучшить интерфейс пользователя. (Чего я и хотел сделать сейчас для себя, но не дают же).
Я для себя тож в своё время делал: игрался исключительно с css - display, opasity и z-index. Js не подключишь к этому делу, но и так боль-мене удобно настроил.
Вообще сейчас я подумываю для этих целей себе небольшое расширение для фф сделать. С расширеными пояснениями к visited ссылкам. Типа своих комментов.)
Сообщение от Почемучкин Посмотреть сообщение
Мне кажется, ещё не все способы исчерпаны. Мне тут пришла в голову идея, правда это через задницу и нужно изучить кое-что, чтобы точно узнать.
Отпишись о результатах.)
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как определить, какой вызывается метод? develka Общие вопросы Javascript 9 08.06.2012 20:40
Как определить расширение файла по содержимому? exvion Firefox/Mozilla 1 15.04.2012 22:16
Подскажите по CSS меню Александр_1988 Элементы интерфейса 1 17.05.2010 11:58
this как ссылка на сам объект HelpeR Events/DOM/Window 1 21.02.2010 15:40
Как отследить ссылку по которой была открыта страница? Pastorman Общие вопросы Javascript 6 22.12.2009 16:08