如何在javascript中以编程方式触发onblclick事件

How to programmatically fire ondblclick event in javascript?

本文关键字:方式触 onblclick 事件 编程 javascript      更新时间:2023-09-26

我正在尝试以下简单的代码(在html中,在IE8上使用js):

<input type="image" src="pic.jpg" id="aa" ondblclick="alert('aa');"/>
<script>
document.getElementById('aa').dblclick(); 
</script>

,我得到一个错误:对象不支持这个属性或方法(关于脚本部分)。我没有收到警告。

然而,当我点击图像时,我得到警告消息。所以我想知道如何以编程方式触发dblclick事件(没有实际双击图像)。

对于onclick(而不是dblclick),同样的工作很好。我也试过按钮,输入文本。

属性名称是ondblclick,但您试图调用dblclick。您需要呼叫ondblclick

<script>
  document.getElementById('aa').ondblclick(); 
</script>

小提琴:http://jsfiddle.net/frwpY/

try this:

<input type="image" src="pic.jpg" id="aa" ondblclick="alert('aa');"/>
<script>
document.getElementById('aa').ondblclick(); 
</script>
http://jsfiddle.net/dnUZY/1/

查看mdn关于element.dispatchEvent的文章

来自MDN的示例代码:

function simulateClick() {
  var evt = document.createEvent("MouseEvents");
  evt.initMouseEvent("click", true, true, window,
    0, 0, 0, 0, 0, false, false, false, false, 0, null);
  var cb = document.getElementById("checkbox"); 
  var canceled = !cb.dispatchEvent(evt);
  if(canceled) {
    // A handler called preventDefault
    alert("canceled");
  } else {
    // None of the handlers called preventDefault
    alert("not canceled");
  }
}

这样您还可以通过DOM气泡跟踪事件,并确保它没有被取消。