Форум Diz-Cs.Ru
Преимущества регистрации:
Возможность создания тем
Общение с пользователями
Найдете множество полезной информации
Найдете своих единомышленников
DIZ-CS.RU - Мы с Вами НАВСЕГДА!
  • Страница 1 из 1
  • 1
Модератор форума: -SAM-  
Активный форум » WEB-мастеру » Скрипты для uCoz » Переход по внешней ссылке (переадресация через страницу-прокладку для uCoz)
Переход по внешней ссылке
Дата: Пт, 11.04.2014, 01:29:03 | Сообщение # 1
Аватарка devil_kiss
:: ПЛАГИАТОР ::
OFF
Banned Users
41 Сообщения:
Skype пользователя:
Сайт пользователя:
Скриншот: http://s020.radikal.ru/i707/1404/6d/489d80a81778.png

Скрипт наподобие того же, что стоит здесь. При переходе на другие сайты вылезает страничка с подтверждением о переходе.

Установка:

1. Создайте файл с именем away.htm со следующим содержимым и залейте в ФМ:

Код
<html>
<head>
<meta http-equiv="content-type" content="text/html; ">
<title>Переход по внешней ссылке</title>
<script type="text/javascript">
<!--
var domain = self.location.host;
var url = self.location.search;
url = url.substring(1, url.length);
function go() {
location.replace(url);
//-->
}
</script>
</head>
<body bgcolor="white" style="padding: 20px 180px; font-size: 12px; font-family: Tahoma; line-height: 200%;">
<h2>Переход по внешней ссылке</h2>
Вы покидаете сайт <b>diz-cs.ru</b> и переходите по внешней ссылке <script type="text/javascript">document.write('<b>'+ url +'</b>')</script>.
Администрация <b>diz-cs.ru</b> не несет ответственности за содержимое сайта <script type="text/javascript">document.write('<b>'+ url +'</b>')</script> и настоятельно рекомендует <b>не указывать</b> никаких своих данных, имеющих отношение к <b>diz-cs.ru</b> (особенно <b>nickname</b>, <b>пароль</b> и <b>cookies</b>), на сторонних сайтах.
<br><br>
Кроме того, сайт <script type="text/javascript">document.write('<b>'+ url +'</b>')</script> может содержать
вирусы, трояны и другие вредоносные программы, опасные для Вашего
компьютера. Если у Вас нет серьезных оснований доверять этому сайту,
лучше всего на него не переходить, даже если Вы якобы получили эту
ссылку от одного из Ваших друзей.
<br><br>
Если Вы еще не передумали, нажмите на <script type="text/javascript">document.write('<a href="javascript://" onClick="go()">'+ url +'</a>')</script>.<br>
Если Вы не хотите рисковать безопасностью Вашего аккаунта и компьютера, <b>нажмите <a href="javascript:window.close()">отмена</a></b>.
</body>
</html>

2. На нужных страницах сайта вставляем после <body>:

Код
<script type="text/javascript">
$(document).ready(function(){
var sh;
var ls;
sh=document.location.host;
//alert (sh);
ls=document.getElementsByTagName('a');
for (i=0; i<ls.length;i++)
{
if((ls[i].host!=sh)&&(ls[i].host!='ucoz.ru')&&(ls[i].host!='www.ucoz.ru')&&(ls[i].protocol!='javascript:'))
ls[i].href='http://'+sh+'/away.htm?'+ls[i].href;
}});
</script>

---Дополнительно: кто просил версию с таймером, то можете взять код скрипта отсюда.--- © -SAM-
Дата: Пт, 15.03.2019, 02:05:56 | Сообщение # 2
Аватарка -SAM-
⇚ Stand Alone Man ⇛
OFF
Гл. Администратор
5625 Сообщения:
88 Награды:
261 Отзывы:
Сайт пользователя:

Так вот, к чему я всё это пишу здесь, спросите вы. Всё просто на самом деле. Можно исправить ссылки подобные выкачав базу сайта, а можно прописать решение через скрипт (собственно, что я и сделал). Вот посидел и такое написал для этого сайта:
Код
<?if($PAGE_ID$='threadpage' || $PAGE_ID$='usermess' || $PAGE_ID$='recentposts')?><?if($USER_LOGGED_IN$)?><!--Убираем перенаправление u.to--><script type="text/javascript">$(document).ready(function(){$('.ds-forum-vid-mess a[href^="http://u.to"].link').each(function(){var uto_h=$(this).attr("href"),uto_t=$(this).attr("title");$(this).attr("href",'/go?'+uto_t),$(this).attr("title",'Без перехода на '+uto_h)})})</script><!--/Убираем перенаправление u.to--><?endif?><?endif?>
Ставиться после $BODY$ в шаблон "Общий вид страниц форума".

Механизм работы прост - все ссылки через u.to оставленные меняет на ссылки, которые берет из их заглавия (именно там хранятся полные ссылки, по ним зачастую и можно зайти, когда короткие ссылки попросту не работают). Ясное дело, что писалось под этот сайт, у вас привязка будет идти к другому классу (.ds-forum-vid-mess - это для нашего текущего вида материалов форума, для сайтов со стандартными шаблонами системы - .posttdMessage или .ucoz-forum-post). Скрипт прописал под условный оператор только для авторизированных (для страховки, так и чтобы не обрабатывалось в кеш поисковикам). Для ссылок новых, что идут через протокол https:// - нужно писать a[href*="u.to"]. Как и для сайта с включенным проксированием (у кого работают ссылки через /go?), если оно у вас не работает, то можете воспользоваться текущим материалом - сделать свою страницу-прокладку взамен системной.

В качестве примера ссылка, а вот без обработки скриптом https://u.to/tRDmFA [!]
К выше мной написанному: у кого отключено проксирование (ссылки вида /go? не работают), то есть повод воспользоваться еще следующим вариантом. В качестве страницы-прокладки создается файл out.htm, и после все внешние ссылки пишутся через /out.htm?далее-идёт-ссылка (по аналогии с проксированием через /go?).
UPD.:

Также вот такой вариант кода (исправлены некоторые нюансы, когда ссылка формируется не автоматически, а делается сразу постинг короткой ссылки):
Код
<?if($PAGE_ID$='threadpage' || $PAGE_ID$='usermess' || $PAGE_ID$='recentposts')?><?if($USER_LOGGED_IN$)?><!--Убираем перенаправление u.to--><script type="text/javascript">$(document).ready(function(){$('.ucoz-forum-post a[href*="//u.to"].link').each(function(){if($(this).attr("title")){var uto_h=$(this).attr("href"),uto_t=$(this).attr("title");uto_t!==uto_h&&($(this).attr("href","/go?"+uto_t),$(this).attr("title","Без перехода на "+uto_h))}})})</script><!--/Убираем перенаправление u.to--><?endif?><?endif?>
Прикрепления: uto.png (14.4 Kb) · out.htm (0.3 Kb)


Активный форум » WEB-мастеру » Скрипты для uCoz » Переход по внешней ссылке (переадресация через страницу-прокладку для uCoz)
  • Страница 1 из 1
  • 1
Поиск: