Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как определить пользователь сам нажал элемент или при помощи функции click(); (https://javascript.ru/forum/dom-window/33935-kak-opredelit-polzovatel-sam-nazhal-ehlement-ili-pri-pomoshhi-funkcii-click-%3B.html)

danik.js 10.01.2013 22:50

Имхо, при вызове click(), параметры x и y никто не устанавливает, поэтому они отрицательны (хотя в WebKit они нулевые, ща смотрел).
Думаю если генерировать события через dispatchEvent, то все будет ок.

http://habrahabr.ru/post/114244/

Вобще в спецификации упоминается свойство isTrusted, но оно помоему только в FireFox есть.

Deff 10.01.2013 22:54

DjDiablo,
:) Да эт самодельная голосовалка, ток для мybb - там ты не голосовал - после перехода нун еще кликать ссыли на странице (Там нужен зареганный ник

danik.js 10.01.2013 23:04

Цитата:

Сообщение от Deff (Сообщение 226453)
<a href="http://forum-top.ru/vote/2" title="Рейтинг форумов Forum-top.ru" target="blank" onclick="onclickTst(this)">
<img id="Id00" onmouseover="Setover(this)" onmousemove="Setmove(this)" src="http://forum-top.ru/uploads/buttons/tmp/informer_2.gif" onmouseout="outClearAll(this)" alt="Рейтинг форумов Forum-top.ru"/>
</a>
<script type="text/javascript">
var TstVariable=false,TstVariable2=false;
function Setover(a){
  TstVariable=true;
}
function Setmove(a){
  if(TstVariable)TstVariable2=true;
}
function onclickTst(a){
 if(TstVariable&&TstVariable2){
 alert("Правильный клик")
 } else alert("Неправильный клик")
}
function outClearAll(a){
 TstVariable=false;
  TstVariable2=false;
}
function fakeClick(){
   var target, event;
    target = document.getElementById('Id00');

    event = document.createEvent('MouseEvents');
    event.initMouseEvent( 'mouseover', true, true, window, 1, 12, 345, 7, 220, false, false, true, false, 0, null );
    target.dispatchEvent(event);

    event = document.createEvent('MouseEvents');
    event.initMouseEvent( 'mousemove', true, true, window, 1, 12, 345, 7, 220, false, false, true, false, 0, null );
    target.dispatchEvent(event);

    target.click();
   
}
setTimeout(fakeClick,1000)
</script>

Так будет работать.

Deff 10.01.2013 23:09

danik.js,
:) Ну зная исходник - да (*- ксать забавно
1.Ну можно подрезать твоего, - смотреть траекторию перемещений ( типо от края банера должна быть
2. Воткнуть во фрейм с их жа домена

Хотя + однозначно!


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