我有这样的元素。
<g id="box_w" onclick="recordResponseKeyboard('W');" onmousedown="svgFill('W');" onmouseup="svgUnfill('W');">
<rect fill="#FFFFFF" height="68.522" stroke="#FFFFFF" stroke-miterlimit="10" width="119.297" x="306.673" y="384.406"></rect>
</g>
从chrome控制台,我可以找到元素。
document.getElementById('box_w')
如果调用单击事件,
document.getElementById('box_w').click()
它会抛出一个错误,即click不是一个函数。
如何使用控制台点击元素。?
尝试使用onclick
而不是click
。
document.querySelector("g#box_w").onclick();
记住,我们在这里做的是调用形状的接口。 因此需要在svg中定义onclick
,就像问题中的一样:
<g id="box_w" onclick="recordResponseKeyboard('W');"></g>
click()是一个仅在HTML元素上定义的函数。 幸运的是,这是一个方便的函数,我们可以很容易地实现它。
document.getElementById('box_w').dispatchEvent(new Event('click'));
这就是click()函数在引擎盖下面所做的全部工作。
下面是一个例子:
null
document.getElementById('box_w').dispatchEvent(new Event('click'));
<g id="box_w" onclick="alert('hi')">
<rect fill="#FFFFFF" height="68.522" stroke="#FFFFFF" stroke-miterlimit="10" width="119.297" x="306.673" y="384.406"></rect>
</g>