HTMLElement.click() не будет запускать ожидаемое событие

Я пытаюсь использовать простой нативный код javascript, чтобы имитировать нажатие пользователем кнопки на script.google.com:

document.querySelector("#runButton").click();

Когда я это делаю, ничего на самом деле не происходит, но когда я действительно нажимаю на этот элемент (#runButton), Я вижу всплывающее окно.

Это может быть связано с тем, что #runButton это div, потому что, когда я делаю то же самое с элементами anchor(), это работает.

Любые идеи, что я могу сделать, чтобы лучше симулировать этот щелчок? Что-то особенное в редакторе сценариев приложений Google, что мешает мне это сделать?

1 ответ

Решение

Похоже, редактор скриптов Google Apps подавляет программный click события на интерфейсных кнопках, вот решение для эмуляции "нажатия" на эти кнопки:

function doClick(n)
{
    e = document.createEvent("MouseEvents");  
    e.initEvent("mousedown", true, false);  
    n.dispatchEvent(e,true); 
    e = document.createEvent("MouseEvents");  
    e.initEvent("mouseup", true, false);  
    n.dispatchEvent(e,true);
}

// do the click
doClick(document.getElementById("runButton"));
Другие вопросы по тегам