"Нажать" кнопку
Вообщем в 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, время: 03:13. |