Отслеживаем переход по внешним ссылкам.

+48
3.09K
Отслеживаем переход по ссылкам. Если пользователь нажимает на ссылку, которая ведёт на другой сайт, то появляется предупреждающая надпись, о том, что он покидает сайт, и ему предлагается выбрать, как открыть этот сайт, в том же окне, или другом. С возможностью запомнить его выбор. Сохранение выбора пользователя происходит в кукесах. Если ссылка является внутренней, то не чего не происходит.
Иллюстрация

Установка:
Распаковываем архив и раскладываем по необходимым нам папкам два файла engage.tblank.js и engage.tblank.css, далее в шаблоне прописываем
<link href="/templates/_default_/css/engage.tblank.css" rel="stylesheet" type="text/css" />
<script src="/templates/_default_/ваша папка/engage.tblank.js" type="text/javascript"></script>
Установка закончена.
Настройка:
Открыть файл engage.tblank.js. Если нужно отключить запоминание выбора пользователя в кукесах (каждый раз будет выводиться предупреждающая надпись, о том что пользователь покидает сайт) строка 35:
cookie: true,
заменить на
cookie: false,
чтобы отредактировать текст, нужно найти строки 38; 78-80.
Скачать
Важно:
Не прописывайте
<link href="/templates/_default_/css/engage.tblank.css" rel="stylesheet" type="text/css" />
<script src="/templates/_default_/ваша папка/engage.tblank.js" type="text/javascript"></script>
между условием <?php if($inUser->is_admin){ ?>....<?php } ?>, а то будет работать если Вы авторизировались прописывайте после <?php } ?> чтобы работало в не зависимости от авторизации.
0
ByMind ByMind 13 лет назад #
работает

+

0
lezginka.ru lezginka.ru 13 лет назад #
+
0
picaboo picaboo 13 лет назад #
лучше писать вместо "другой сайт" ссылку на которую переходим.
0
Слава Слава 13 лет назад #
В самом верху прописана ссылка.
+1
picaboo picaboo 13 лет назад #
я вижу что написанноsmileно урл в титле не воспринимается. сейчас подчеркивается желание юзера уйти на ДРУГОЙ сайт, а не предупреждение о том что он счас утопает на вполне конкретный сайт по адресу.

не суть вообщем
0
Максим Шорин Максим Шорин 13 лет назад #
То что надо ! +
0
nics nics 13 лет назад #
скажите, плз, что если ссылка ведет на поддомен (shop.site.ru) основного сайта (site.ru) - будет как внутренняя определятся?
0
Анатолий Анатолий 13 лет назад #
да, будет считаться как другой сайт
+1
Анатолий Анатолий 13 лет назад #
Вопрос по теме, как сделать так, чтоб поддомены не учитывались как другие сайты?
0
13 лет назад #
Незнаю как у вас, а у меня вот что
0
Анатолий Анатолий 13 лет назад #
у меня нормально все работает, значит у тебя конфликт какой-то
0
Михаил М. Михаил М. 13 лет назад #
Это конфликт скриптов js, поочерёдно по отключайте расширения которые подгружают js, так можно выяснить что с чем конфликтует, а там подумать как это решить.
0
Егор Егор 13 лет назад #
Скажите pls а где именно дописывать в шаблоне?
0
Егор Егор 13 лет назад #
Чет не работаетsadвставил
<link href="/templates/_default_/css/engage.tblank.css" rel="stylesheet" type="text/css" />
<script src="/templates/_default_/engage.tblank.js" type="text/javascript"></script>
в template.php перед </body>
И ничего...
0
EVV EVV 13 лет назад #
вставить между <head> и </head>
0
Егор Егор 13 лет назад #
Спасибо, пробую...
0
Егор Егор 13 лет назад #
не помогло, тупо переходит на другой сайт и все...
подскажите pls как с этим бороться?
+2
13 лет назад #
нужно не только вставить в хэ но и прописать путь правильно для них. Щас у тебя /templates/_default_/engage.tblank.js а я думаю надо путь может у тебя к файлу другой? у тебя дефолтный шаблон?
0
Егор Егор 13 лет назад #
<link href="/templates/_default_/css/engage.tblank.css" rel="stylesheet" type="text/css" />
<script src="/templates/_default_/linki/engage.tblank.js" type="text/javascript"></script>
файлы все по местам раскиданы как нужно...
шаблон дефолтный
0
13 лет назад #
хрензнает по идее все должно сраз уже заработать. Или хотябы ошибку какую нибудь выдавать. У меня сразу заработало.
0
reload reload 13 лет назад #
напиши туточки адрес сайта - так быстрее будет)
0
reload reload 13 лет назад #
нужно не только вставить в хэ но и прописать путь правильно для них.
Иногда еще и файлы забывают залить)
0
Егор Егор 13 лет назад #
Все залил, не даун ведь!
0
reload reload 13 лет назад #
да эт я к примеру)
лучше адрес скажи чтоб можно было посмотреть
0
Егор Егор 13 лет назад #
http://portalzoo.ru/stati/sobaki/vse-o-sobakah/dresirovka/pravila-dresirovki.html
внизу ссылка:
Источник - Зверушки
0
Егор Егор 13 лет назад #
Ну что? есть идеи?
0
reload reload 13 лет назад #
у меня тоже так не пашет)
...прописано у меня так:
Код PHP:
<!-- HEAD !-->
    <?php cmsPrintHead(); ?>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"/>
    <?php if($inUser->is_admin){ ?>
        <script src="/admin/js/modconfig.js" type="text/javascript"></script>
        <script src="/templates/_default_/js/nyromodal.js" type="text/javascript"></script>
        <link href="/templates/_default_/css/modconfig.css" rel="stylesheet" type="text/css" />
        <link href="/templates/_default_/css/nyromodal.css" rel="stylesheet" type="text/css" />
		<link href="/templates/_default_/css/engage.tblank.css" rel="stylesheet" type="text/css" />
        <script src="/templates/_default_/js/engage.tblank.js" type="text/javascript"></script>
    <?php } ?>
    <link href="/templates/_default_/css/reset.css" rel="stylesheet" type="text/css" />
    <link href="/templates/_default_/css/text.css" rel="stylesheet" type="text/css" />
    <link href="/templates/_default_/css/960.css" rel="stylesheet" type="text/css" />
   <link href="/templates/_default_/css/styles.css" rel="stylesheet" type="text/css" />
опустите запись ниже!
0
Егор Егор 13 лет назад #
И так не работает, зато табы слетают!
0
Егор Егор 13 лет назад #
Подожду, может кто нить сие чудо в плагин соберет, тогда и поставлю :)
+1
reload reload 13 лет назад #
ты не жди а обнови лучше jQuery с 1.2.5 на 1.5.2 - проблем должно стать меньше с конфликтами...
0
Егор Егор 13 лет назад #
Спасибо!
0
Михаил М. Михаил М. 13 лет назад #
Если прописать в такой конструкции между <?php if($inUser->is_admin){ ?>....<?php } ?> то будет работать только если вы авторизировались если прописать после <?php } ?> то будет подгружаться для всех. Данная условие для проверки на причастность Вас к администрации сайта, и если Вы админ то загружается всё в этом условии, если нет то не грузиться.
0
reload reload 13 лет назад #
А кто знает как можно убрать первую воловину при выводе в скрипте!
сейчас так:
http://uavip.ru/redirect?url=http://www.reg.ru
нужно первую часть скрыть
http://uavip.ru/redirect?url=http://www.reg.ru
и вывести только
http://www.reg.ru
А то пользователи сами не понимают куда это скрипт их перекидывает)
+1
maia maia 13 лет назад #
Эээ.. народ, а зачем вообще эта фишка?
+1
Alexneva Alexneva 13 лет назад #
Может я ошибаюсь, но видимо такие фишки ставят, когда больше нечем на сайте пользователя удержать )
0
reload reload 13 лет назад #
Может я ошибаюсь, но видимо такие фишки ставят, когда больше нечем на сайте пользователя удержать )
Я так понимаю что контакт именно по этому и ставил себе аналогичную вещь))
Эээ.. народ, а зачем вообще эта фишка?
Прикольная штукенция которая еще и выполняет полезные функции - удерживает некоторых пользователей;)
Только она как то странно работает - сейчас проверил - уже не пашет))
вроде кукисы отключил... непонятно...
0
reload reload 13 лет назад #
Только она как то странно работает - сейчас проверил - уже не пашет)) вроде кукисы отключил... непонятно...
Авторизовался на сайте начала работать))
не пойму причем здесь авторизация...
0
БИБАБО БИБАБО 13 лет назад #
Подтверждаю. Работает только у авторизованных...
+2
Михаил М. Михаил М. 13 лет назад #
Данному JQuery плагину по барабану авторизировался пользователь или нет, он отлавливает только ссылки, а не проверяет на предмет авторизации. Важно правильно прописать в шаблоне
0
БИБАБО БИБАБО 13 лет назад #
Подтверждаю. ТупАнул )))...
Вы правы на 100%... Я в шаблоне прописал для юзера...
0
Alexneva Alexneva 13 лет назад #
Там, как и на некоторых форумах, это сделано с целью предупреждения посетителя - типа, мы не отвечаем, если вы какую гадость там подцепите. Здесь та же идея?
0
13 лет назад #
Странно... у меня не работает :(

Хотя сделал всё как описано... Что может быть не так ?

Страница с примером тут
0
13 лет назад #
Удалил из-за того что в личном кабинете всё покосячилось
0
reload reload 13 лет назад #
Подтверждаю. Работает только у авторизованных...
Если прописать в такой конструкции между <?php if($inUser->is_admin){ ?>....<?php } ?> то будет работать только если вы авторизировались если прописать после <?php } ?> то будет подгружаться для всех. Данная условие для проверки на причастность Вас к администрации сайта, и если Вы админ то загружается всё в этом условии, если нет то не грузиться.
!)
0
13 лет назад #
Моуль пришлось удалить он както неправильно работает. Загржает все ссылки по два раза при нажатии и реагирует на переходы по своему сайту если ссылка начинается не с каталога а с http://
0
Слава Слава 13 лет назад #
Всё отлично работает. Что вы пургу несёте. Можете посмотреть.
Проверено в Опере, Хроме, Сафари, Лисе и IE.
0
Влад Влад 13 лет назад #
Посмотрел, действительно работает, только если нажать "Открыть в новом окне" - открывает сразу две странички. У меня Хром на Linux Ubuntu
0
Слава Слава 13 лет назад #
Действительно, такое есть. В Опере тоже. Надо поработать над этим. Нехороший глюк.
0
Слава Слава 13 лет назад #
Здесь идёт связь со всплывающим окном и новой вкладкой.
0
Михаил М. Михаил М. 13 лет назад #
Отличное решение!!!
0
Слава Слава 13 лет назад #
Если вы используете свой шаблон, нужно заливать туда. И в линках, естественно, прописать путь к своему шаблону.
0
Слава Слава 13 лет назад #
Покапался и решил зделать вот так:
В файле: engage.tblank.js нужно найти вот эту строку и закомментировать её
Код PHP:
external:	'external',		// Add this class to a link and it will always open in a new window
А в функции: function external(url, title){ в строке:
Код PHP:
<li><a href="#" id="ep_new" class="' + settings.external + '">В новом окне</a></li>\
Вставить вот это: target="_blank". Что бы получилось вот так:
Код PHP:
<li><a href="#" target="_blank" id="ep_new" class="' + settings.external + '">В новом окне</a></li>\
Класс можно удалить, а можно оставить. Он не будет больше работать.
Лично у меня работает и в Опере и в Хроме. Открывается только одна новая вкладка.
0
reload reload 13 лет назад #
Все правильно)
Оставляем 2 кнопки "перейти" и "назад"
Инстант все равно открывает в новой вкладке...

Кто знает как прописать чтоб первая часть выводимой ссылки скрывалась?
сейчас выводит так http://storentgen.ru/redirect?url=http://eco.rian.ru/busines
зачеркнутое нужно НЕ выводить)
http://storentgen.ru/redirect?url=http://eco.rian.ru/busines
А то пользователи некоторые действительно не могут понять куда это они переходят))
0
Слава Слава 13 лет назад #
Я тоже думаю над этим вопросом. Пока не разобрался.
0
Слава Слава 13 лет назад #
Оставляем 2 кнопки "перейти" и "назад"
Действительно, открыть "В этом же окне" лишнее.
0
13 лет назад #
Да там еще проблема не только с двойными вкладками, но еще и с переходами внутри по своему же сайту. Иногда както глючит. Что то не то. Может конечно из за того что у меня все стили переписаны под себя.
0
reload reload 13 лет назад #
О рекламе забыл)
Посмотреть как реализовал можно туточки
для проверки можно нажать на счетчик внизу страницы...
зы: заодно и мульт поглядеть можно)
0
13 лет назад #
сайтик у тебя зачетный такой. крутешок
0
Викторыч Викторыч 13 лет назад #
Попробовал сделать эдакое у себя ) сайт пока на денвере, в Firefox все четко работает, а в Хроме совсем никак, летит по нажатию на сайт, и никакого всплывающего окошка. Интересно, отчего так?
uavip, так и не понял, как ты первую строку текста вытащил наверх )
0
nics nics 13 лет назад #
файлы .js и .css можно просматривать в браузере, ссылки на эти файлы в исходном коде страницы. там и можно глянуть как вытянуть первую строку.
0
nics nics 13 лет назад #
спасибо автору за код. все работает норм во всех браузерах.
Скажите вот только как решить вопрос с поддоменами своего сайта. А также вообще можно ли в код добавить какие-то урлы в виде исключения, чтобы это отслеживание не срабатывало. И я так понимаю, что там где сапа стоит этот хак если поставить, то ссылки уйдут в еррор, т.к. ссылка не прямая.
0
nikitka nikitka 13 лет назад #
На 1.8 сьехали табы и при переходе ничего не происходит-просто перешел как обычно в новом окне!Может кто знает решение данной проблемы!А так фича классная!
0
artlab artlab 13 лет назад #
Работает,спасиб,+++
0
13 лет назад #
Здраствуйте! при проверке Dr.Web онлайн Проверить ссылку (URL)
дало следующею информацию
так должно быть?)))
-1
13 лет назад #
Проверил ещё один сайт - http://teenmaje.ru//templates/_default_/js/engage.tblank.js infected with Trojan.Click.20674 такая же история....даааааааа...сами себе гадите,ребята.
0
13 лет назад #
прежде чем писать, проверьте еще одним антивирусом. Нет хуже "умников" не владеющих полностью информацией.
0
Михаил М. Михаил М. 13 лет назад #
А другими антивирусниками проверять не пробовали если у Dr.Web ложное срабатывание на скрипт, то это не значит что это вирус, так как скрипт срабатывает на отслеживании ссылок на соответствие определённым условиям.
0
13 лет назад #
Зайдя на сайт и обнаружив там вирус человек выйдет и больше не вернется.Не думаю, что у пользователей стоит по 5 антивирусов для перепроверки!
0
13 лет назад #
Что то никто пока не пожаловался, вы видно не владеете информацией.
Расскажу, один раз у меня был скрипт, который не содержал вируса, но содержал код похожий на вирус, через три часа это мне написали пользователи, удалив лишний код, ошибка исчезла. Если бы там был вирус, вы бы получили уже письмо от пользователей.
Можете сами зайти пользователем или проверить на онлайн сервисе.
+1
13 лет назад #
Я изначально пытался обратить внимание на то, что в скрипте может быть ошибка кода....и указывал на то, как эта проблема может выглядеть с точки зрения пользователей.Хотелось как лучше, а получилось как всегда.
0
13 лет назад #
Со стороны пользователей есть проблема? Доктор Веб себя слегка скомпрометировал в плане работы с Js файлами, факт отслеживания скриптом ссылок, он воспринимает неверно. По принципу, лучше переоценить, чем недооценить.
Если вам так тягостно это наблюдать, уберите скрипт, или сделайте другой, просто не кидайтесь словами, если будет вирус, сработка народом на это, будет моментальная.
0
stasis stasis 12 лет назад #
СПАСИБО! На 1.9 работает ++++++++++
0
CyberMan CyberMan 12 лет назад #
Может кто подскажет,что я не так делаю? http://cyberspeak.ru/users/admin нажмите на ссылку у меня на стене и опуститесь вниз страницы

Еще от автора

Система оценок пользователей в общих и личных фотоальбомах.
Плагин позволяет зарегистрированным пользователям оценивать фото в общих и личных фотоальбомах, по пятибалльной шкале (т.е. от 1 до 5).
Вывод голосовавших за фото, в постах блога и статьях сайта (3в1)
Всем привет! Поступило предложение объединить три ранее созданных плагина выводивших голосовавших в один, сделав одной кнопкой.
Вывод голосовавших (+/-) за фото.
Плагин выводит голосовавших за фото в общих альбомах.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.