HTMLElement.click()不会触发预期的事件

时间:2017-12-24 13:15:58

标签: javascript google-apps-script-editor

我尝试使用一些简单的原生javascript代码,以模拟用户点击script.google.com上的按钮:

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

当我这样做时,没有真正发生,但当我真正点击这个元素(#runButton)时,我可以看到一个弹出窗口出现。

这可能与#runButton是div的事实有关,  因为当我使用anchor()元素做同样的事情时,它会起作用。

我可以做些什么来更好地模拟此点击?关于谷歌应用程序脚本编辑器的一些特定内容阻止我这样做吗?

1 个答案:

答案 0 :(得分:2)

看起来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"));