Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   помогите с событиями (https://javascript.ru/forum/misc/4612-pomogite-s-sobytiyami.html)

zmaxik 07.08.2009 19:18

помогите с событиями
 
<script>
function test(){
alert('ss');
}
</script>


<div style="width: 100px; height: 100px; border: black 1px solid;" onClick="test();"></div>

<script>
function simulateClick(x, y) {
var el = document.elementFromPoint(x, y);
el.innerHTML = 'sss';
alert('ss');
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, window,
1, 0, 0, x, y,
false, false, false, false, 0, null);

el.dispatchEvent(evt);

}
</script>


<a href="" onclick="javascript: simulateClick(250, 250);">111</a>

zmaxik 07.08.2009 19:23

нужно имитировать клик мышки в любой области, заданной координатами

проблема такая:

функцию simulateClick() требуется вызвать так
<script>simulateClick();</script>
или так
<script>window.onload = simulateClick;</script>

а она вызывается только так
onclick="javascript: simulateClick(250, 250);"

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

Андрей Параничев 07.08.2009 19:48

Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

По теме, используйте анонимную функцию:
<script>
    window.onload = function() {
        simulateClick(250, 250);
    }
</script>

zmaxik 08.08.2009 12:25

извините)
вот такой код у меня

<script>
function test(){
alert('ss');
}
</script>


<div style="width: 100px; height: 100px; border: black 1px solid;" onClick="test();"></div>

<script>
function simulateClick(x, y) {
var el = document.elementFromPoint(x, y);
el.innerHTML = 'sss';
alert('ss');
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, window,
1, 0, 0, x, y,
false, false, false, false, 0, null);

el.dispatchEvent(evt);

}
</script>


<a href="" onclick="javascript: simulateClick(250, 250);">111</a>


анонимная функция не помогает, т.к. моя функция simulateClick() вызывается ещё из одной и конструкция
<script>

fucntion other(){
    window.onload = function() {
        simulateClick(250, 250);
    }
}

other();
</script>



не пашет :(

zmaxol 08.08.2009 12:32

а функция other() вызывается из третей

поэтому здесь другой какой-то способ должен быть..

вот только какой? :-?

Андрей Параничев 08.08.2009 16:18

<script>
 
fucntion other(){
    simulateClick(250, 250);
}
 
other();
</script>


В общем я вообще не понимаю проблемы.

zmaxik 08.08.2009 16:29

спасибо)
с эмуляцией клика разобрался :)

задача свелась к получению элемента по координатам (X,Y)
есть ли какие-нибудь способы?

zmaxik 08.08.2009 16:30

*получению доступа к элементу

Андрей Параничев 08.08.2009 16:39

var el = document.elementFromPoint(x, y);

zmaxik 08.08.2009 17:53

надо узнать координаты абрисов ВСЕХ объектов страницы, определить иерархию и видимость ВСЕХ объектов страницы и потом по данным координатам определить - по какому же объекту (из ВСЕХ имеющихся) надо кликнуть.


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