Страница 1 из 1
Улучшить систему кликов
Добавлено: 09 апр 2011, 16:56
pratamishus
Есть 2 предложения
1. Позволять просто делать клик по документу без каких-либо яваскриптов. Просто клик по координатам страницы - на данный момент клики по новому флешу просто невозможно сделать
2. В программе PrTest показывать пользователю визуально как ходит мышка и куда она кликает
Re: Улучшить систему кликов
Добавлено: 09 апр 2011, 17:48
Support
Спасибо за предложения, поставили в разработку.
Re: Улучшить систему кликов
Добавлено: 12 апр 2011, 22:25
modulator
Да систему кликов надо улучшать!
Просто в большинстве случаев нужен именно клик, а не поиск ссылки по событию.
Клик даёт возможность выполнить скрипт который указан в параметре onClick, onMouseDown в тэге ссылки, для меня, например это очень важно.
Даже пришлось писать специальный скрипт, чтобы он проверял, прошёл клик удачно или нет, а если нет, то повторял его.
К сожалению, он слегка только улучил работу в целом.
Кстати такую вещь можно встроить в программу презентации.
Чтобы программа сама проверяла, прошёл клик удачно или нет, и повторяла его, не переходя на следующие команды.
Re: Улучшить систему кликов
Добавлено: 12 апр 2011, 23:15
Support
Как правило все же достаточно отправки событий mousedown, click и т.п. - обработчики их все равно получат.
Клик нужен только там, где обработчики как-то работают с координатами клика или с кнопкой, которой клик был осуществлен.
Контроль клика как-нибудь сделаем. Пока не очень понятно как, вероятно будет сдвигаться выполнение последующих команд на заданное время, если клик с первого раза не прошел.
Уже сделали возможность режима отладки, через некоторое время сделаем и обратную связь - чтобы по каждому выполненному системой показу можно было получить такой же текст, какой пишет программа тестирования презентации + также и любую свою отладочную информацию.
Это даст возможность глубокого анализа причин некорректной работы презентаций.
Re: Улучшить систему кликов
Добавлено: 12 апр 2011, 23:57
modulator
Support писал(а):Контроль клика как-нибудь сделаем. Пока не очень понятно как, вероятно будет сдвигаться выполнение последующих команд на заданное время, если клик с первого раза не прошел.
У меня занимает лишние 12 секунд. Вот пример скрипта проверки, может кому надо:
Выполняю команду клик первый раз.
var cmdname = "click"; // Выполнить команду Клик.
var cmdtime = 10; // Время показа команды секундах.
var cmdparam = "a;link;
http://my-site.ru/;0<set(search=index)>"; // Параметры команды.
alert("prs::" + prskey + "::add::" + cmdname + "::" + cmdtime + "::" + cmdparam);
Получаю адрес сайта.
var cmdname = "script"; // Выполнить команду Вставить скрипт.
var cmdtime = 1; // Время показа команды секундах.
var cmdparam = "alert('prs::<get(key)>::setvar::host='+document.location.host);"; // Параметры команды.
alert("prs::" + prskey + "::add::" + cmdname + "::" + cmdtime + "::" + cmdparam);
Сравниваю два адреса, если сайты не равны, повторяю клик.
var cmdname = "script"; // Выполнить команду Вставить скрипт.
var cmdtime = 1; // Время показа команды секундах.
var cmdparam = "if('<getvar(host)>'!='my-site.ru'){alert('prs::<get(key)>::add::click::10::a;link;
http://my-site.ru/;0');}";
alert("prs::" + prskey + "::add::" + cmdname + "::" + cmdtime + "::" + cmdparam);
Конечно, на этом теряю 12 секунд, но прирост кликов ощутим.
Только не понял, как это сделать циклом
while чтобы крутилась пока не кликнет, просто
while полностью вешает программу презентации.
Re: Улучшить систему кликов
Добавлено: 13 апр 2011, 00:23
Support
Чтобы делалось циклом, нужно использовать функцию JavaScript
setInterval
Используемый вами скрипт может работать, только если команда "Клик" - последняя.
Если же нет, то команда клик будет добавлена в конец уже имеющихся команд. Если нужно повторить команду в середине презентации, то можно поиграть со значениями "Оставшееся время до выполнения следующей команды " и "Номер следующей команды" - время установить в ноль, номер следующей - номер текущей минус 2 или где-то рядом
Вторую и третью команды можно объединить:
var cmdname = "script"; // Выполнить команду Вставить скрипт.
var cmdtime = 1; // Время показа команды секундах.
var cmdparam = "if(document.location.host!='my-site.ru'){alert('prs::<get(key)>::add::click::10::a;link;
http://my-site.ru/;0');}";
alert("prs::" + prskey + "::add::" + cmdname + "::" + cmdtime + "::" + cmdparam);
Re: Улучшить систему кликов
Добавлено: 13 апр 2011, 01:21
modulator
Support писал(а):Используемый вами скрипт может работать, только если команда "Клик" - последняя.
Я выкрутился таким образом:
var cmdname = "script"; // Выполнить команду Вставить скрипт.
var cmdtime = 1; // Время показа команды секундах.
var cmdparam = "\r\n"; // Параметры команды.
cmdparam+= "if('<getvar(host)>'!='my-site.ru'){alert('prs::<get(key)>::add::click::10::a;link;http://my-site.ru/;0');}";
cmdparam+= "function rand(a,b){if(b){return Math.floor(Math.random()*(b-a+1))+a}else{return Math.floor(Math.random()*(a+1))}}";
cmdparam+= "for(i=1;i<=4;i++){alert('prs::<get(key)>::add::click::'+rand(15,25)+'::a;link;my-site.ru;-1');}";
и далее…
cmdparam+= "И сюда вписываю другие команды, чтобы они выполнялись после вставки этой команды script"
alert("prs::" + prskey + "::add::" + cmdname + "::" + cmdtime + "::" + cmdparam);
Re: Улучшить систему кликов
Добавлено: 16 апр 2011, 17:21
modulator
Support писал(а):Чтобы делалось циклом, нужно использовать функцию JavaScript
setInterval
Не получается даже с этой функцией.
Проблема в document.location.host - оказывается его можно получить только один раз.
Вот, например, простой код:
var cmdname = "click"; // Выполнить команду Клик.
var cmdtime = 10; // Время показа команды секундах.
var cmdparam = "a;link;
http://www.my-site.ru/1;0<set(search=index)>"; // Параметры команды.
alert("prs::" + prskey + "::add::" + cmdname + "::" + cmdtime + "::" + cmdparam);
var cmdname = "script"; // Выполнить команду Вставить скрипт.
var cmdtime = 1; // Время показа команды секундах.
var cmdparam = "\r\n"; // Параметры команды.
cmdparam+= "function repeatClick(){alert('prs::<get(key)>::add::click::10::a;link;
http://www.my-site.ru/;0')}"+"\r\n";
cmdparam+= "if(document.location.host!='
www.my-site.ru') repeatClick()"+"\r\n";
cmdparam+= "if(document.location.host!='
www.my-site.ru') repeatClick()"+"\r\n";
Предположим, что первый клик у нас не удался (a;link;
http://www.my-site.ru/1;0<set(search=index)>) и мы остались на сайте
www.site.ru!
Запускается вторая команда script которая проверяет и повторяет клики.
Например, первое условие "if" получает из document.location.host сайт
www.site.ru потому что клик не удался, и мы не перешли на сайт
www.my-site.ru, запускается функция и повторяет клик.
Теперь клик удался! Мы перешли на сайт
www.my-site.ru!
Запускается второе условие "if", но в document.location.host опять находится сайт
www.site.ru !!?? он не поменялся на
www.my-site.ru, запускается функция и идёт повторный клик, которого не должно быть.
И можно делать сколько угодно условий и даже если будут клики то в document.location.host всегда будет самый первый полученный url:
www.site.ru
Это ошибка программы презентации или я что-то не так делаю?
Re: Улучшить систему кликов
Добавлено: 16 апр 2011, 20:01
Support
В таком варианте команды идут друг за другом, а хост не меняется моментально, в результате в 100% случаев добавляется две команды клика.
Нужно сделать паузу между проверками хоста.
Добавить функцию уникальности ip для группы сайтов
Добавлено: 22 июн 2011, 09:32
goog
Практически все ПП не принимают клики с одного ip. У меня 10 сайтов в одной партнерке и постоянно идут отклоненные клики из-за повтора ip по разным сайтам. Как настроить уникальность ip на группу сайтов? Система прекрасно позволяет настраивать уникальность для одного сайта, а вот у меня вообще больше 80 сайтов в системе и что получается один ip может больше 80-и раз по всем сайтам пройтись и каждый раз будет уникальным для сайта, но не для ПП. Я уже даже интервал между кликами выставлял например 1000-1001сек, чтобы не попадали одному пользователю, всеравно попадают т.к там автоматом еще +-10% идет, в общем подскажите как быть? В общем, как подсказали, функции уникальности ip для группы сайтов нет, а она очень нужна, значит нужно сделать.