И так все мы знаем, что с этим чудом надо что-то творить, и я решил выступить в роли творца.
1) Код заменит в ссылках в постах страницу click.php на другую, так чтобы мы далее смогли сами контролировать какие ссылки требуют мгновенной переадресации, а какие нет
<script type="text/javascript"> var change = 'http://'+location.hostname+'/pages/redirect'; var posts = document.getElementById('pun-main').getElementsByTagName('div'); var urls; var old = 'http://'+location.hostname+'/click.php'; for(var i = 0; i<posts.length; i++) { if(posts[i].className == 'post-content') { urls = posts[i].getElementsByTagName('a'); for(var y = 0; y < urls.length; y++) { if(urls[y].href.indexOf(old)!=-1) urls[y].href = urls[y].href.replace(old,change); } } } </script>
html-низ или форма ответа(не заменит у тех, кто не видит форму ответа). В этом коде смотрим на самую первую строку, там указан адрес страницы /pages/redirect, можете использовать этот, можете заменить на свой
2) Создаем страницу для перехода. Если вы оставили в предыдущем коде не измененным адрес, то проверьте, чтобы в поле адрес было написано redirect
3) В коде страницы неплохо бы оповестить о переходе, к примеру таким кодом(вставлять через html)
<p> <script type="text/javascript"><!-- var redirect = location.search.slice(1) // --></script> </p> <p>Вы пытаетесь перейти по ссылке ведущей на внешний сайт. Для продолжения перехода нажмите <span id="redirect_word"> </span> <script type="text/javascript"><!-- document.getElementById('redirect_word').innerHTML = '<a href="+redirect+" mce_href="+redirect+">здесь</a>' // --></script> </p>
в итоге на странице появится строка
Вы пытаетесь перейти по ссылке ведущей на внешний сайт. Для продолжения перехода нажмите здесь
4) Создаем список сайтов, на которые можно попасть, минуя эту страницу. В самый верх кода только что созданной страницы(через html) вставляем скрипт
<script type="text/javascript"> var enabled_urls = new Array(); enabled_urls.push(/^http\:\/\/ru\.wikipedia\.org\/wiki\/(.*)$/) var redirect = location.search.slice(1); var go = false; for(var i = 0; i< enabled_urls.length; i++) if(enabled_urls[i].test(redirect)) { go = true; break; } if(go === true) location.href = redirect </script>
для примера в этом коде является разрешенным сайт википедии, разберем пример
enabled_urls.push(/^http\:\/\/ru\.wikipedia\.org\/wiki\/(.*)$/)
такую строку добавляете сколько вам нужно, заменяя выделенную часть
^http\:\/\/ru\.wikipedia\.org\/wiki\/(.*)$
символ ^ обозначает начало строки, а символ $ конец. Слэши(/), ьекслэши(\), точки, вопросительные знаки, звездочки должны экранироваться обратным слэшем(\) - если адрес выглядит http://mysite.my/ то его надо записать в таком виде
(.*) это сочетание позволяет вставлять далее любые символы в любом количестве, то есть адреса
http://ru.wikipedia.org/wiki/Web или http://ru.wikipedia.org/wiki/HTML пройдут так как после http://ru.wikipedia.org/wiki/ мы разрешили любые символы
Если у вас не получается самим создать адрес для скрипта, спрашивайте тут
Подробнее про RegEx http://ru.wikipedia.org/wiki/Regex
Автор: mkusher