|
замена ссылок в сообщениях
|
|
| ctaulep6377 | Отредактировал ctaulep6377 - Вторник, 01 Декабря 2009, 19:04 Дата: 01 Декабря 2009, 19:02 | Сообщение # 1 | ● ● ● ● ● 26 сообщений Статус: Offline | Еще раз всем привет. Я думал, что сам справлюсь со скриптом замены одной ссылки на другую. Нашел скрипт, подредактировал, но до ума довести не смог. Итак, вот такой скриптя вставляю после $BODY$ Quote <script> e=document.getElementsByTagName('A'); for(k=0; k<e.length;k++) { if(e[k].className=="link"){ e[k].href="http://csmovie.net/redirectpage.htm?url=ССЫЛКА"; } } </script> Этот скрипт работает отлично, но: Что нужно вставить вместо ССЫЛКА, чтобы там появился заменяемый "link". Это первый вопрос, думаю, что для Вас он невероятно легкий=) Вторая проблема состоит в том, что невсе ссылки, использующиеся на форуме, ведут на какой-то посторонний сайт. Бывают ссылки просто на другой раздел\тему моего же сайта. И направлять пользователя на страницу редиректа - бессмысленно. Так что как-то нужно поставить ограничение. Заранее огромное спасибо=) Уверен, что это несложно для Вас=) | | |
|
| mob_dp | Дата: 01 Декабря 2009, 20:40 | Сообщение # 2 | ● ● ● ● ● 4112 сообщений Статус: Offline | | | |
|
| ctaulep6377 | Отредактировал ctaulep6377 - Вторник, 01 Декабря 2009, 21:08 Дата: 01 Декабря 2009, 21:08 | Сообщение # 3 | ● ● ● ● ● 26 сообщений Статус: Offline | не работает=( всеми различными способами пытался её вставить\обособлить - результата нет. | | |
|
| uWeb | Отредактировал uWeb - Вторник, 01 Декабря 2009, 21:14 Дата: 01 Декабря 2009, 21:14 | Сообщение # 4 | ● ● ● ● ● 1135 сообщений Статус: Offline | Code e[k].href='http://csmovie.net/redirectpage.htm?url='+this.href; | | |
|
| ctaulep6377 | Дата: 01 Декабря 2009, 21:26 | Сообщение # 5 | ● ● ● ● ● 26 сообщений Статус: Offline | пробовал и этот вариант. Каждая ссылка на форуме стала иметь вид: http://csmovie.net/redirectpage.htm?url=undefined | | |
|
| cucYa | Дата: 01 Декабря 2009, 21:31 | Сообщение # 6 |  ● ● ● ● ● Совращенный мальчик.7317 сообщений Статус: Offline | Code var url = e[k].href; e[k].href = 'http://csmovie.net/redirectpage.htm?url=' + url; | | |
|
| ctaulep6377 | Дата: 01 Декабря 2009, 21:36 | Сообщение # 7 | ● ● ● ● ● 26 сообщений Статус: Offline | вооо) супер, отлично=))) кинуть плюсиг не могу, ибо кидал уже сегодня) а со вторым вопросом кто-нибудь знает, как можно справиться? | | |
|
| Task | Отредактировал Task - Вторник, 01 Декабря 2009, 21:47 Дата: 01 Декабря 2009, 21:44 | Сообщение # 8 | ● ● ● ● ● 703 сообщения Статус: Offline | Code <script type="text/javascript"> e=document.getElementsByTagName('A'); for(k=0; k<e.length;k++) { if(e[k].className=="link"){ var url = e[k].href; if(url.host!=='csmovie.net'){ e[k].href = 'http://csmovie.net/redirectpage.htm?url=' + url; } } } </script> | | |
|
| cucYa | Отредактировал cucYa - Вторник, 01 Декабря 2009, 22:17 Дата: 01 Декабря 2009, 21:45 | Сообщение # 9 |  ● ● ● ● ● Совращенный мальчик.7317 сообщений Статус: Offline | Code var a = document.getElementsByTagName('a'); for (var i = 0; i < a.length; i++) { if (a[i].host.replace(/^w{3}\./i, '') != location.host && a[i].href != 'javascript://') { a[i].setAttribute('href', 'http://csmovie.net/redirectpage.htm?url=' + a[i].href) } } | | |
|
| Task | Дата: 01 Декабря 2009, 21:50 | Сообщение # 10 | ● ● ● ● ● 703 сообщения Статус: Offline | Опоздал... ставь вариант, который cucYa написал | | |
|
| ctaulep6377 | Отредактировал ctaulep6377 - Вторник, 01 Декабря 2009, 22:01 Дата: 01 Декабря 2009, 22:00 | Сообщение # 11 | ● ● ● ● ● 26 сообщений Статус: Offline | Task, напиши пожалуйста полный вариант, который надо поставить. Я запутался: вначале поставил то, что ты написал - не работает. потом поставил то, что cucYa написал - тоже не работает. потом начал вместе совмещать (еще и вместе с первоначальным) короче попробовал поставить все варианты, пропадает вообще переадресация на страницу редиректа. Соедини всё, что надо в один код: от <script> до </script> так, как правильно и так, как будет работать=( А то я никак не смог разобраться. Приогромнейшее спасибо заранее:) Парни, Вы вообще мега крутые | | |
|
| cucYa | Дата: 01 Декабря 2009, 22:12 | Сообщение # 12 |  ● ● ● ● ● Совращенный мальчик.7317 сообщений Статус: Offline | http://webcodes.ru/publ/1-1-0-1997Добавлено (01 Декабрь 2009, 22:12) --------------------------------------------- А на странице с редиректом замените [var]split("*")[/var] на [var]split("=")[/var] | | |
|
| ctaulep6377 | Дата: 01 Декабря 2009, 22:14 | Сообщение # 13 | ● ● ● ● ● 26 сообщений Статус: Offline | обожаю вас, парни:) выручаете ппц:) отлично) спасибо) за 1 день два раза так сильно помочь:) это благородно:) | | |
|
| MyPlace | Отредактировал MyPlace - Четверг, 28 Октября 2010, 16:45 Дата: 28 Октября 2010, 16:38 | Сообщение # 14 | ● ● ● ● ● 58 сообщений Статус: Offline | Ребят, а подскажите тоже самое, но с учётом того, что BB коды отключены и ссылки идут не через тег <a>, а простым текстом. Вот как скриптом взять всю эту ссылку, переделать её и положить обратно? Мне нужно, чтобы все ссылки проксировались таким образом: http://mysite.ru/go?http://www.anysite.com/ Ещё раз повторюсь - BB коды ОТГЛЮЧЕНЫ и поэтому стандартная фича проксирования ссылок не работает... | | |
|
| Bogggdan | Дата: 29 Октября 2010, 01:16 | Сообщение # 15 | ● ● ● ● ● 408 сообщений Статус: Offline | Code $(".posttdMessage").each(function(){ this.innerHTML = this.innerHTML.replace(/((http|https|ftp)\:\/\/[^<"\s]+)/g, "http://mysite.ru/go?$1"); }); Не знаю насколько пашет, не тестил. | | |
|
| MyPlace | Дата: 29 Октября 2010, 12:31 | Сообщение # 16 | ● ● ● ● ● 58 сообщений Статус: Offline | Bogggdan, спасибо, работает хорошо! Только необходимо две вещи: 1. Как бы прикрутить .toLowerCase() к этим ссылкам? 2. Я внёс в список www, а скрипт это не распознаёт. Как шёл по http|https|ftp, так и идёт. Почему? | | |
|
| uWeb | Отредактировал uWeb - Пятница, 29 Октября 2010, 14:32 Дата: 29 Октября 2010, 14:32 | Сообщение # 17 | ● ● ● ● ● 1135 сообщений Статус: Offline | 1.Code $(".posttdMessage").each(function(){ this.innerHTML = this.innerHTML.replace(/((http|https|ftp)\:\/\/[^<"\s]+)/ig, "/go?$1"); }); 2. хз, ничего не понял. | | |
|
| MyPlace | Дата: 29 Октября 2010, 14:48 | Сообщение # 18 | ● ● ● ● ● 58 сообщений Статус: Offline | uWeb, дядь, не то.. дело не в "i". Не для того, чтобы он брал текст любого регистра нужно, а чтоб тот текст, что он взял, был переведён в нижний регистр и поставлен обратно. 2. как добавить в этот скрипт ещё определение по www. ? А то тут явно : мешается в скрипте, чтоб просто так воткнуть... | | |
|
| uWeb | Дата: 29 Октября 2010, 16:21 | Сообщение # 19 | ● ● ● ● ● 1135 сообщений Статус: Offline | Code .replace(/((http|https|ftp)\:\/\/[^<"\s]+)/ig, function (a) { return "/go?" + a.toLowerCase(); }); | | |
|
| Bogggdan | Дата: 29 Октября 2010, 16:54 | Сообщение # 20 | ● ● ● ● ● 408 сообщений Статус: Offline | тогда скрипт будет искать Можно сделать Code .replace(/(www\.[^<"\s]+)/gi, "<a href='http://mysite.ru/go?http://$1' target='_blank'>$1</a>"); Но есть НО. Если будет написано так: «http://www.site.ru», то скрипт изменит на Quote http://<a href='http://mysite.ru/go?http://www.site.ru' target='_blank'>www.site.ru</a> Лень сейчас мне париться, мб кто-то из Хелперов и сделает. | | |
|