HTMLElement.click() 不会触发预期的事件
HTMLElement.click() would not fire an expected event
我尝试使用一些简单的本机 javascript 代码,以模拟用户单击 script.google.com:
处的按钮
document.querySelector("#runButton").click();
当我这样做时,什么也没有发生,但是当我真正点击这个元素时 (#runButton
),我可以看到一个弹出窗口出现。
这可能与 #runButton
是 div 的事实有关,
因为当我对 anchor() 元素做同样的事情时,它起作用了。
有什么想法可以更好地模拟此点击吗? google 应用程序脚本编辑器的某些特定内容阻止我这样做?
看起来 Google Apps 脚本编辑器抑制了界面按钮上的编程 click
事件,这里是在这些按钮上模拟 "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"));
我尝试使用一些简单的本机 javascript 代码,以模拟用户单击 script.google.com:
处的按钮document.querySelector("#runButton").click();
当我这样做时,什么也没有发生,但是当我真正点击这个元素时 (#runButton
),我可以看到一个弹出窗口出现。
这可能与 #runButton
是 div 的事实有关,
因为当我对 anchor() 元素做同样的事情时,它起作用了。
有什么想法可以更好地模拟此点击吗? google 应用程序脚本编辑器的某些特定内容阻止我这样做?
看起来 Google Apps 脚本编辑器抑制了界面按钮上的编程 click
事件,这里是在这些按钮上模拟 "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"));