使用.click()方法单击DOM按钮。但是它无法自行记录文件。
/* Working fine */
function getAlert() {
alert("Clicked!!!");
}
var btn = document.getElementById('btn');
btn.onclick = getAlert;
btn.click()
/* Should be work */
document.onclick = getAlert;
document.clicked()
<button id="btn">Click Me!</button>
请帮助。
答案 0 :(得分:5)
document
对象不是可以单击的对象。
事件处理程序可以绑定到document
,事件会冒泡直到到达document
并触发处理程序,但是您不能直接单击document
。 / p>
答案 1 :(得分:3)
document.getElementById('btn')
在文档中找不到此ID,因此,请添加元素ID并删除document.clicked()
,因为它不是文档对象上的功能。
在这里,请检查工作代码段。
/* Working fine */
function getAlert() {
alert("Clicked!!!");
}
var btn = document.getElementById('btn');
btn.onclick = getAlert;
btn.click()
/* Should be work */
document.onclick = getAlert;
//document.clicked()
<button id="btn">Click Me!</button>
答案 2 :(得分:1)
正如昆汀已经在回答中解释的那样,无法单击document
对象。
在document
上关联的事件处理程序由于事件使DOM冒泡而执行。例如,片段中按钮上的click事件会遍历按钮->然后是正文->然后是文档。
因此,作为您尝试提问的document.clicked()
的替代方法,您可以通过body
在document.body.click()
元素上触发事件。
/* Working fine */
function getAlert() {
alert("Clicked!!!");
}
var btn = document.getElementById('btn');
btn.onclick = getAlert;
btn.click()
/* Should be work */
document.onclick = getAlert;
document.body.click()
<button id="btn">Click Me!</button>
您可以在此处了解有关事件冒泡的更多信息:What is event bubbling and capturing?
注意:我已将ID属性添加到代码段中的按钮上,以确保其运行。
答案 3 :(得分:-2)
您可以使用jquery这样操作:
$(document).on('click', ()=>{console.log('clicked')})
$(document).click()