Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как определить была ли ссылка посещена (https://javascript.ru/forum/dom-window/31206-kak-opredelit-byla-li-ssylka-poseshhena.html)

Почемучкин 29.08.2012 23:55

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

А как моему скрипту определить visited links?

Aetae 30.08.2012 02:31

Цитата:

Сообщение от Почемучкин (Сообщение 201543)
Я могу

Не можете.

Из-за политики безопасности никаким образом не возможно со стороны скрипта определить посещенные страницы.
Какие бы стили вы не применяли, при попытке получения стиля браузер вам выдаст стандартный стиль ссылки, а не текущий, каким бы он ни был.

Aetae 30.08.2012 06:03

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

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

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

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

Почемучкин 04.09.2012 20:08

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

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

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

Aetae 04.09.2012 22:22

Поищи. Найдёшь - запости на багтрекер фф чтоб потешить тщеславие, или продай секрет.(если найдёшь кому:))

Aetae 05.09.2012 06:26

Цитата:

Сообщение от Дзен-трансгуманист (Сообщение 203054)
Тестировал Хром 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>

Aetae 05.09.2012 07:37

А я и не говори что можно. Я просто уточнил твой пост.)

Почемучкин 08.09.2012 22:07

Цитата:

Сообщение от Дзен-трансгуманист (Сообщение 203054)
Но, в принципе, я солидарен с таким положением дел, что разработчики браузеров принудительно отказывают в поддержке visited
...
Нехорошо давать возможность эксплуатировать функционал браузера для получения настолько приватной информации. :)

А я вот с настолько радикалистским подходом разработчиков не согласен. По крайней мере нужно было дать возможность включать-выключать эту функциональность самому пользователю.
Большинству пользователей особо нечего скрывать и они намного больше информации о себе сливают другими способами. Это пригодится очень малому количеству людей поэтому стоило включать только в режиме повышенной безопасности.
Зато, определяя (не)посещенные ссылки или изменяя их свойства, а не только цвет, можно было бы существенно улучшить интерфейс пользователя. (Чего я и хотел сделать сейчас для себя, но не дают же).
Здесь IE8 мне больше по душе, чем Firefox/Chrome - надеюсь, в новых версиях Микрософт ничего не поменяет.

Почемучкин 08.09.2012 22:12

Цитата:

Сообщение от Дзен-трансгуманист (Сообщение 203060)
Aetae,
:)
Короче, данный сабж это тот случай, когда об этом нужно забыть и выкинуть из головы.

Мне кажется, ещё не все способы исчерпаны. Мне тут пришла в голову идея, правда это через задницу и нужно изучить кое-что, чтобы точно узнать.

Aetae 08.09.2012 22:41

Цитата:

Сообщение от Почемучкин (Сообщение 203693)
Зато, определяя (не)посещенные ссылки или изменяя их свойства, а не только цвет, можно было бы существенно улучшить интерфейс пользователя. (Чего я и хотел сделать сейчас для себя, но не дают же).

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

Сообщение от Почемучкин (Сообщение 203695)
Мне кажется, ещё не все способы исчерпаны. Мне тут пришла в голову идея, правда это через задницу и нужно изучить кое-что, чтобы точно узнать.

Отпишись о результатах.)

Почемучкин 09.09.2012 01:10

Цитата:

Сообщение от Aetae (Сообщение 203706)
Вообще сейчас я подумываю для этих целей себе небольшое расширение для фф сделать

Есть же Greasemonkey для всего, Stylish для конкретно CSS и еще куча

Aetae 09.09.2012 02:01

Это не то. Я хочу возможности вешать на посещённые линки комменты("туда не ходи, ты там был - сплошная х*ня"), раскрашвать в цвета(например красный для нежелетльных итд), задавать уровень для того чтобыы ссылка данного сайта считалась псещённой(т.е. зашёл на shluhi.net/masha и ссылки shluhi.net/masha/trezvaya, shluhi.net/masha?za=edu - тоже считаются посещёнными) ну и наконец возможность объединять домены если у сайта их несколько.
Такие вот наполеоновские планы, не очень понятные простому обывателю.))

Почемучкин 10.09.2012 10:54

Aetae,
Тогда возможно - вести параллельно History свою базу данных в .sqlite и менять правила в отображения в зависимости от потребностей - что-то типа профилей?
Я вот тоже страдаю из-за того, что History очищается через время, а на некоторых сайтах хотелось бы хранить историю посещенных страниц годами, чтобы сразу видеть куда уже заходил. History же сильно разрастается и начинаются тормоза. Поэтому если был какой-то способ сохранять посещенные ссылки по каким-то правилам, было бы хорошо.


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