"Нажать" кнопку
Вообщем в gmail есть кнопка "След" она подгружает новую страницу
![]() Вот она аха. ![]()
document.querySelector('[id=":hd"]').click();
Пробую по ней кликнуть, а нечего не происходит. Хз чо еще попробовать? |
juser367,
Вы работаете в Гугле или пишете под браузер и ошиблись веткой форума? |
Через element.dispatchEvent последовательно триггерь события mousedown и mouseup (проверено).
|
Цитата:
var event = document.createEvent('MouseEvents', true, false); event.initEvent('mousedown'); document.querySelector('[aria-label="След."]').dispatchEvent(event); var event = document.createEvent('MouseEvents', true, false); event.initEvent('mouseup'); document.querySelector('[aria-label="След."]').dispatchEvent(event); |
function loadNextPage() {
var el = document.querySelector('[data-tooltip="След."]');
var ev;
ev = document.createEvent('MouseEvents');
ev.initEvent('mousedown');
el.dispatchEvent(ev);
ev = document.createEvent('MouseEvents');
ev.initEvent('mouseup');
el.dispatchEvent(ev);
}
loadNextPage(); // TypeError: Cannot call method 'dispatchEvent' of null
Там еще такая проблема пока мышкой не наведешь на кнопку document.querySelector('[data-tooltip="След."]'); будет возвращать null |
Не пиши китаекод.
Все же элементарно:
var eventTypes = ['mousedown', 'mouseup'];
var eventTarget = document.querySelector('[aria-label="След."]');
eventTypes.forEach(function(eventType) {
var event = document.createEvent('MouseEvents');
event.initEvent(eventType);
eventTarget.dispatchEvent(event);
});
Кстати createEvent принимает один аргумент, не знаю где ты три увидел. |
не суть. даже экономии строк нет. http://pastebin.com/JGAfmniv вот решение
|
['mousedown', 'mouseup'].forEach(function(type) {
var event = document.createEvent('MouseEvents');
event.initEvent(type);
document.querySelector('[aria-label="След."]').dispatchEvent(event);
});
|
| Часовой пояс GMT +3, время: 11:03. |