URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 5400
[ Назад ]

Исходное сообщение
"щелкнуть на объект средствами javascript"

Отправлено mitya5005 , 02-Дек-07 01:53 
собственно вопрос звучит так " как щелкнуть на объект (имеется его ID) средствами javascript? "

очень уж нужно..

благодарю за ответ.


Содержание

Сообщения в этом обсуждении
"щелкнуть на объект средствами javascript"
Отправлено Stanislaus , 02-Дек-07 02:09 
>собственно вопрос звучит так " как щелкнуть на объект (имеется его ID)
>средствами javascript? "
>
>очень уж нужно..
>
>благодарю за ответ.

при "щелчке на объект" срабатывает связанное с ним событие onClick:
document.getElementById('object_id').onClick()

или лучше использовать API Prototype:
$('object_id').onClick();

Думаю так.


"щелкнуть на объект средствами javascript"
Отправлено mitya5005 , 02-Дек-07 02:16 
>[оверквотинг удален]
>>
>>благодарю за ответ.
>
>при "щелчке на объект" срабатывает связанное с ним событие onClick:
>document.getElementById('object_id').onClick()
>
>или лучше использовать API Prototype:
>$('object_id').onClick();
>
>Думаю так.

в первом случае Получаю - объект не поддерживает данное свойство или метод (объект - тэг IMG)

во втором - object expected.....


"щелкнуть на объект средствами javascript"
Отправлено Stanislaus , 02-Дек-07 02:49 
>[оверквотинг удален]
>>
>>или лучше использовать API Prototype:
>>$('object_id').onClick();
>>
>>Думаю так.
>
>в первом случае Получаю - объект не поддерживает данное свойство или метод
>(объект - тэг IMG)
>
>во втором - object expected.....

Попробуй с API Prototype:
$('object_id').fire('onclick');

http://www.prototypejs.org/api/element#method-fire



"щелкнуть на объект средствами javascript"
Отправлено Stanislaus , 02-Дек-07 03:27 
Еще пища для размышлений
http://www.howtocreate.co.uk/tutorials/javascript/domevents



"щелкнуть на объект средствами javascript"
Отправлено Stanislaus , 02-Дек-07 03:32 
// Думаю это то, что нужно

var fireOnThis = document.getElementById('someID');
if( window.KeyEvent ) {
  var evObj = document.createEvent('KeyEvents');
  evObj.initKeyEvent( 'keyup', true, true, window, false, false, false, false, 13, 0 );
} else {
  var evObj = document.createEvent('UIEvents');
  evObj.initUIEvent( 'keyup', true, true, window, 1 );
  evObj.keyCode = 13;
}
fireOnThis.dispatchEvent(evObj);


"щелкнуть на объект средствами javascript"
Отправлено mitya5005 , 02-Дек-07 18:09 
>[оверквотинг удален]
>if( window.KeyEvent ) {
>  var evObj = document.createEvent('KeyEvents');
>  evObj.initKeyEvent( 'keyup', true, true, window, false, false, false, false, 13,
>0 );
>} else {
>  var evObj = document.createEvent('UIEvents');
>  evObj.initUIEvent( 'keyup', true, true, window, 1 );
>  evObj.keyCode = 13;
>}
>fireOnThis.dispatchEvent(evObj);

Эм..
if( window.KeyEvent ) - это условие на что? мне бы в принципе без всяких условий кликнуть на объект и все...
условие я сам допишу требуемое..


"щелкнуть на объект средствами javascript"
Отправлено Stanislaus , 02-Дек-07 20:14 

>Эм..
>if( window.KeyEvent ) - это условие на что? мне бы в принципе
>без всяких условий кликнуть на объект и все...
>условие я сам допишу требуемое..

//Сори, тот пример - для событий, связанных с нажатием клавиш
//для клика мыши:
var fireOnThis = document.getElementById('someID');
var evObj = document.createEvent('MouseEvents');
evObj.initMouseEvent( 'click', true, true, window, 1, 12, 345, 7, 220, false, false, true, false, 0, null );
fireOnThis.dispatchEvent(evObj);
// или так
var fireOnThis = document.getElementById('someID');
var evObj = document.createEvent('MouseEvents');
evObj.initEvent( 'click', true, true );
fireOnThis.dispatchEvent(evObj);


"щелкнуть на объект средствами javascript"
Отправлено mitya5005 , 02-Дек-07 22:27 
>[оверквотинг удален]
>var fireOnThis = document.getElementById('someID');
>var evObj = document.createEvent('MouseEvents');
>evObj.initMouseEvent( 'click', true, true, window, 1, 12, 345, 7, 220, false, false,
>true, false, 0, null );
>fireOnThis.dispatchEvent(evObj);
>// или так
>var fireOnThis = document.getElementById('someID');
>var evObj = document.createEvent('MouseEvents');
>evObj.initEvent( 'click', true, true );
>fireOnThis.dispatchEvent(evObj);

оба кода выдают еррор на строке где находится var evObj = document.createEvent('MouseEvents');

Объект не поддерживает данное свойство или метод.

не думал я что все так сложно окажется..



"щелкнуть на объект средствами javascript"
Отправлено Stanislaus , 02-Дек-07 23:14 

>
>оба кода выдают еррор на строке где находится var evObj = document.createEvent('MouseEvents');
>
>
>Объект не поддерживает данное свойство или метод.
>
>не думал я что все так сложно окажется..

мда... действительно, только в Firefox работают... в  IE не хотят...
вот для IE, но теперь в Firefox не будет работать:
<body>
<script src="./prototype.js"></script>
Privet, mir!<br />
<img id="img1" src="./IMG_0135.jpg" />
<script>
$('img1').observe('click',function (event){
    alert('oops!');
});
$('img1').fireEvent('onclick');
</script>
</body>


"щелкнуть на объект средствами javascript"
Отправлено mitya5005 , 02-Дек-07 23:30 
>[оверквотинг удален]
><script src="./prototype.js"></script>
>Privet, mir!<br />
><img id="img1" src="./IMG_0135.jpg" />
><script>
>$('img1').observe('click',function (event){
> alert('oops!');
>});
>$('img1').fireEvent('onclick');
></script>
></body>

Я как понимаю взял только

><script>

###>$('img1').observe('click',function (event){ alert('oops!');});
>$('img1').fireEvent('onclick');
></script>

ошибка object expected на строке отмченной ###


"щелкнуть на объект средствами javascript"
Отправлено angra , 03-Дек-07 07:56 
На какой объект и главное зачем? Как объект по вашему должен отреагировать на клик мышкой?

"щелкнуть на объект средствами javascript"
Отправлено mitya5005 , 04-Дек-07 00:01 
>На какой объект и главное зачем? Как объект по вашему должен отреагировать
>на клик мышкой?

Есть Access2003, есть у него Data Access Page. при работе с данными через Data Access Page (веб-страница) - периобически требуется нажимать на кнопу "сохранить" - которая является частью интерфейса данной страницы.

нажимать крайне не желательно. требуется чтобы она сама "нажималась" каждые 2 минуты.

В коде страницы я не нашел ни одного скрипта которые обслуживают эту кнопочу. видимо все объекты подгружаются откуда-то еще. ссылок на это "откуда-то еще" в самой странице я так и не нашел.

Но у этой кнопочки явно есть ID - вот на ее и хочется "жать" используя этот id..

такая вот беда..


"щелкнуть на объект средствами javascript"
Отправлено angra , 04-Дек-07 18:03 
DOM объект какой? Кнопочку можно сделать через input, img, div, etc. А вообще советую поставить webdeveloper и firebug для firefox и посмотреть что и как работает на этой страничке.

"щелкнуть на объект средствами javascript"
Отправлено mitya5005 , 05-Дек-07 00:15 
>DOM объект какой? Кнопочку можно сделать через input, img, div, etc. А
>вообще советую поставить webdeveloper и firebug для firefox и посмотреть что
>и как работает на этой страничке.

это добро работает только под IE.

конпка - это тэг IMG. неужели нет явной функции на вызов мышиного клика?


"щелкнуть на объект средствами javascript"
Отправлено angra , 05-Дек-07 18:36 
>это добро работает только под IE.

Мои соболезнования, этот браузер исключительно недружественен к js, многие объекты DOM ведут себя там совсем не так как должны, некоторые свойства и события зачастую недоступны при обращении к объекту средствами js.
>конпка - это тэг IMG. неужели нет явной функции на вызов мышиного клика?

Может вам еще дать возможность повозить курсор мыши по экрану, побарабанить клавой итд? Конечно нет такого просто потому что быть не должно и это не только в браузерах, но и в OS вообще. Если нужно сымитировать нажатие на какой-либо объект, то просто вызывается функция/обработчик, которая была бы вызвана, если бы произошло реальное нажатие мышкой. В простейшем случае это назначенныя явно обработчик onclick, однако все может быть куда запутанней. Например img может быть связан с картой ссылок или может быть заключен в в какой либо контейнер. В таком случае у самого img обработчика onclick не будет, вместо этого будет вызван обработчик(в том числе и дефолтный, который опять таки явно не виден) контейнера или карты. Разобрать такое вручную может быть очень нелегко, особенно учитывая что обработчики не обязательно явно указаны в тексте, а могут вешаться налету в любой части документа.
Можно подойти к этому с другой стороны. Для сохранения требуется обращение к серверу, а значит мы ловим это обращение, смотрим какой это был тип запроса и какие параметры передавались. После чего делаем аналогичный запрос в своем куске js кода.



"щелкнуть на объект средствами javascript"
Отправлено mitya5005 , 05-Дек-07 21:24 
>[оверквотинг удален]
>быть заключен в в какой либо контейнер. В таком случае у
>самого img обработчика onclick не будет, вместо этого будет вызван обработчик(в
>том числе и дефолтный, который опять таки явно не виден) контейнера
>или карты. Разобрать такое вручную может быть очень нелегко, особенно учитывая
>что обработчики не обязательно явно указаны в тексте, а могут вешаться
>налету в любой части документа.
>Можно подойти к этому с другой стороны. Для сохранения требуется обращение к
>серверу, а значит мы ловим это обращение, смотрим какой это был
>тип запроса и какие параметры передавались. После чего делаем аналогичный запрос
>в своем куске js кода.

Да в том то и едло что у обхекта есть только ID и все. никаких функций в тексте страницы нет. они как я понимаю все содержаться в погружаемых "веб-компонентах офис 2003"

это все на локалхосте... чем отлавливать данное событие?


"щелкнуть на объект средствами javascript"
Отправлено angra , 05-Дек-07 22:39 
Тут ничем помочь не могу. Понятия не имею как работает access с браузером(он что выступает в роли вебсервера или js в ie как то может общаться с access через activex?) и чем вообще можно смотреть трафик в винде


"щелкнуть на объект средствами javascript"
Отправлено NarWhal , 22-Фев-08 12:00 
>[оверквотинг удален]
>>Можно подойти к этому с другой стороны. Для сохранения требуется обращение к
>>серверу, а значит мы ловим это обращение, смотрим какой это был
>>тип запроса и какие параметры передавались. После чего делаем аналогичный запрос
>>в своем куске js кода.
>
>Да в том то и едло что у обхекта есть только ID
>и все. никаких функций в тексте страницы нет. они как я
>понимаю все содержаться в погружаемых "веб-компонентах офис 2003"
>
>это все на локалхосте... чем отлавливать данное событие?

Можно использовать другие методы, не программные. К примеру, есть готовые проги, эмулирующие нажатия клавиш, мыши и т.п. Одна из них, часто используемая в игровых приложениях, — UOPilot. Если главное - результат, то и этот метод вполне имеет право на существование. :)