Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Нужна помощь в реализации фильтра ссылок на js (https://javascript.ru/forum/css-html/34432-nuzhna-pomoshh-v-realizacii-filtra-ssylok-na-js.html)

Clodan 04.01.2013 20:18

Нужна помощь в реализации фильтра ссылок на js
 
Добрый вечер.
У меня есть скрипт заточенный под сайт http://jetswap.com/, в нем есть код:
Код:

var cmdname="event";
var cmdtime=myRandom(4,6);
var cmdparam="a;link;http;click;-1";
alert("prs::" + prskey + "::add::" + cmdname + "::" + cmdtime + "::"
+ cmdparam);

Данный код реализует клик по маске ссылок в нашем случае по маске "http", задача сделать исключение для используемых ссылок, опираясь на данные условия. То есть, сделать так, чтобы можно было задать вторую маску например "site.ru" и код выполнялся для любой ссылки, кроме ссылок начинающих с "site.ru" Своего рода, 1 маска дает диапазон для используемых ссылок, а вторая, ограничивает этот диапазон, то есть своего рода фильтр. На практике это нужно чтобы, при работе скрипта, путем js кликались любые ссылки рандомом, кроме ссылок относящихся к рекламе. Буду рад любым вопросам, возможно не ясно изложил что-то, так же готов заплатить за выполнение задачи.

Deff 04.01.2013 20:50

jQuery можно использовать ?

Clodan 04.01.2013 21:01

Теоретически да, но у меня весь скрипт изложен в виде набора команд на js которые обрабатывает уже сам сервис, пример как выглядит мой js вот http://file.qip.ru/document/WuXjp_eX...id2______.html
Там много чего помимо кликов, поэтому в данный момент обращать внимание ну ту часть кода, которую кинул выше. Если можно хотелось бы написать саму исполняющую часть, а библиотеку jQuery постараюсь подключить сам, пообщавшись с администрацией.

Deff 04.01.2013 21:13

Цитата:

Сообщение от Clodan

Тестируем все ссылки (или в выделенном селекторе?

(*Библиотека jQuery у Вас уже подключена на данной странице, подключать лишнее не надо

Clodan 04.01.2013 21:21

Цитата:

Сообщение от Deff (Сообщение 225214)
Тестируем все ссылки (или в выделенном селекторе?

Да можно в выделенном селекторе, это всего лишь пример скрипта, если сработает в одном случае, по аналогии тогда реализуем для всех остальных задач.

Clodan 04.01.2013 21:26

Хотя пожалуй я не так понял вопрос, тестируем все ссылки, маска у нас изначально всегда будет "http" то есть под ее диапазон будет попадать любая ссылка, а наша задача из этого диапазона выделить ссылки с конкретным селектором, например "http://внешняя ссылка", чтобы ссылки попадающие под тип "http://внешняя ссылка" не кликались.

Deff 04.01.2013 21:28

Clodan,
Т.е задача - собрать все ссылки со страницы - организовать из них массив,исключить из него массив некликабельных ?

Или ?

Clodan 04.01.2013 21:38

Цитата:

Сообщение от Deff (Сообщение 225220)
Clodan,
Т.е задача - собрать все ссылки со страницы - организовать из них массив,исключить из него массив некликабельных ?

Или ?

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

Clodan 04.01.2013 22:06

Deff,
Так что Вы сможете помочь?

Deff 04.01.2013 22:18

Clodan,
Отвлекли - чичас - полчасика

Deff 04.01.2013 22:22

Цитата:

Сообщение от Clodan
Да примерно так. То есть чтобы был некий промежуточный скрипт через который проходил клик и в рандоме он не давал указанные ссылки

Не могу найти скрипт - к которому нун привязку сделать - дайте ссылку или выложите кусок(если он на самой странице

Clodan 04.01.2013 22:28

Вот в этой команде
var cmdparam="a;link;http;click;-1";
нужно сделать команду которая бы обращалась к промежуточному скрипту, где указаны запретные ссылки ,а тот уже возвращал на рандоме ссылку на которую можно кликнуть.
Например
var cmdparam="a;link;вызов скрипта;click;-1";

а он уже вернет нужную ссылку из списка разрешенных

Deff 04.01.2013 22:37

Clodan,
Вы ссылку загружаемого скрипта можете дать(если он есть на этой странице http://file.qip.ru/document/WuXjp_eX...id2______.html

Clodan 04.01.2013 22:44

ПРОСТИТЕ, не заметил что ссылка битая, вот перезалил http://zalil.ru/34135952

Clodan 04.01.2013 22:49

Привязать можно к любой строчке типа
var cmdparam="a;link;http;click;-1";
если будет работать, по аналогии пропишем сами для всех нужных нам.

Clodan 04.01.2013 23:17

Deff,
Ну что у Вас есть еще вопросы?

Deff 04.01.2013 23:17

var excluded_links='site1.ru,site2.ru,site3.ru,site4.ru';
excluded_links=excluded_links.split(",");

function exLnk(Link) {
   for(var zx in excluded_links){
      if(!~Link.indexOf(excluded_links[i]))
      {return true;}
   }
    return false;
}

Должен вывести true - если ссылка не в запрещенных, иначе false

Типо
var cmdparam="a;link;exLnk(Link);click;-1";
================================ =
Хотя если в данной строке есть признак - кликать - не кликать - можно улучшить

Clodan 04.01.2013 23:42

чтобы был клик по маске по идее должно быть так -

var excluded_links='site1.ru,site2.ru,site3.ru,site4.ru';
excluded_links=excluded_links.split(",");
 
function exLnk(Link) {
   for(var zx in excluded_links){
      if(!~Link.indexOf(excluded_links[i]))
      {return Link;}
   }
    return false;
}


чтобы если тру, то маска стала
var cmdparam="a;link;Link;click;-1";

я правильно понимаю?

Deff 04.01.2013 23:56

Цитата:

Сообщение от Clodan
я правильно понимаю?

Нет -
var cmdparam="a;link;Link;click;-1";

Вот -1 - это что ?

(а лучше поясните каждый параметр

Clodan 05.01.2013 00:00

Цитата:

Вот -1 - это что ?
Это рандом

Просто если делать так как Вы говорите, то по идеи получится
var cmdparam="a;link;true;click;-1";
то есть скрипт вернет тру и все.

Deff 05.01.2013 00:02

Clodan,
Цитата:

Сообщение от Deff
var cmdparam="a;link;true;click;-1";

(а лучше поясните каждый параметр


Clodan 05.01.2013 00:36

Отправить Событие (event в JavaScript) - отправка выбранному элементу определенного события. События происходят, как правило в результате пользовательских действий - клик мышкой, ввод текста и т.д. Основные события, которые вас могут интересовать: click, submit, mousedown, keydown Все события. Применяется, когда для ссылки или другого элемента установлен отдельный обработчик события. Адрес сайта или параметры команды вводится в формате A;B;C и опционально ;E, где в качестве A вводится имя тега нужного элемента (например, а, input, form, select и пр.) В качестве B может выступать одно из следующих значений

id - поиск объекта с тегом A по ID, C - искомый идентификатор, D - событие, которое нужно отправить найденному объекту. Например, чтобы кликнуть по ссылке <a href=http://site.ru id=mylink>Ссылка</a> нужно ввести a;id;mylink;click

link - поиск ссылки по её части, С - часть искомой ссылки, D - событие, которое нужно отправить найденной ссылке. Действует ТОЛЬКО ДЛЯ ССЫЛОК. Будет отравлено событие первой ссылке, содержащей часть текста, переданного в качестве С. Например, такой ссылке будет отправлено событие click при вводе a;link;jetswap.com;click <a href=http://www.jetswap.com/?12345>Super CAP!</a> Может производиться поиск

Примечание Вы можете ввести необязательный параметр E, чтобы событие было отправлено не первому найденному элементу, а случайному (при вводе -1 (минус один)) или заданному (при вводе 1 событие будет отправлено второму найденному элементу, 2 - третьему и т.п.) Например, при вводе a;link;jetswap;click;-1 событие click будет отправлено случайной ссылке из списка ссылок, которые содержат слово jetswap.

Clodan 05.01.2013 00:38

Это описание с сайта.

Deff 05.01.2013 00:43

Clodan,
Не проще из полного списка ссылок(если он есть в скрипте - удалить запрещенные?
2 - как формируется полный перечень ссылок ? (может изымать на этапе формирования ?
-----------
3. Мой скрипт - получает на входе ссылку и сравнивает со списком запрещенных ...
-----------
4. Тот скрипт, что по ссылке - походу чисто тестовый - он ток алерты выдаёт, хотя имхо это не моё дело

Clodan 05.01.2013 00:46

Deff,
1- ссылки не в скрипте, они на сайте. а уже скрипт из них выбирает
2- формируется командой что мы скинули, что внутри неизвестно
3- Вы не ответили насчет:
Цитата:

Просто если делать так как Вы говорите, то по идеи получится
var cmdparam="a;link;true;click;-1";
то есть скрипт вернет тру и все.
4-скрипт не тестовый, а реальный, но написан с учетм требовний джетсвап

Deff 05.01.2013 00:59

Цитата:

Сообщение от Clodan
Вы не ответили насчет:

Цитата:

Сообщение от Clodan
Просто если делать так как Вы говорите, то по идеи получится
var cmdparam="a;link;true;click;-1";
то есть скрипт вернет тру и все.

Тут неверная моя соврала наверно....
Цитата:

Сообщение от Clodan
1- ссылки не в скрипте, они на сайте. а уже скрипт из них выбирает

Вот тут нун воздействовать на выборку или собирать самим, в предоставленном скрипте этой части нет, очевидно есть какое то дополнение
в Выданном скрипте - только организация способа параметров запроса( самих деяний нет, нужен доступ к части с действиями

Clodan 05.01.2013 01:07

Цитата:

Вот тут нун воздействовать на выборку или собирать самим, в предоставленном скрипте этой части нет, очевидно есть какое то дополнение
Почему же тогда не сделать как предложил выше return Link, ведь если совпадений нет, он вернет маску обратно и пойдет отрабатывать команду дальше, а если будет фальш, то вернет false, а такой маски на сайте нет и клика не будет. Меня интересует просто Ваши замечания по такому типу алгоритма.

Deff 05.01.2013 01:13

Clodan,
В команде нет реального линка - есть только строка как есть(которая в дальнейшем заменится скриптом(из массива ссылок), -cкриптом которого втам нет/),

/так вот функции реальной обработки этих параметров и реальной подстановки Вы мне не дали

Лан - ушел баиньки

Clodan 05.01.2013 01:15

Спасибо за помощь, АГРОМНЕЙШЕЕ)

Deff 05.01.2013 01:23

Clodan,
Да бросьте...
1. Собственно вопросы - Вы уверены что данный код исполняется на клиенте - а не на сервере
2. Есть ли описание к данному коду
3. Если скрипт исполняется на клиенте (в браузере пользователя) - может проще реализовать дедовскими методами ?
=======================
//Данный топик под скрипты: 'Javascript под браузер'

Clodan 05.01.2013 01:41

1 - данный js скрипт находится на нашем хостинге, далее клиент запускает программу джетсвапа, а она уже переходит по ссылке и отрабатывает все команды с кликами и переходами.
2. Описание к какому коду? К команде клика, кидал выше или вот подробнее http://jetswap.com/h?pr#2.6
3. А какими дедовсками, я не силен в javascript, буду благодарен, если подскажите )


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