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"));