【问题标题】:How to generate mousedown or keypress event programmatically?如何以编程方式生成 mousedown 或 keypress 事件?
【发布时间】:2011-05-17 05:26:44
【问题描述】:

我正在开发一个在特定网页上运行一些 javascript 的 chrome 扩展。

我想在 google docs 演示视图页面的“上一个”、“下一个”工具栏上模拟点击操作。 不幸的是,两者都是带有对应于混淆 javascript 的 onmousedown 事件的标签。

如果他们是锚, document.getElementById("ToolbarNext").onclick();作品。但是,对于 onmousedown 似乎不起作用,可能是因为它需要鼠标坐标等。 如何生成此事件?

另一个选项是在 DOM 上模拟按键“j”或“k”。我尝试了几个选项,但也无法弄清楚。

【问题讨论】:

    标签: javascript html dom


    【解决方案1】:

    尝试dispatchEvent/fireEvent 方法

    【讨论】:

      【解决方案2】:

      您可以收集附加到 onmousedown 的函数并执行它。 但是,如果需要,您必须重新创建 event 对象:

      <input type="button" onmousedown="console.log('mousedown')" value="click me" />
      <script>
          var inp = document.getElementsByTagName('INPUT')[0],
              fn = inp.onmousedown;
              fn({target:inp/*, other properties of the event object if needed */});
      </script>
      

      【讨论】:

      • 确切的代码是:var next = document.getElementById("ToolbarNext"); var e = document.createEvent("MouseEvent"); e.initMouseEvent("mousedown", true, true, window, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, null); next.fireEvent(e);
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-08
      • 1970-01-01
      • 1970-01-01
      • 2013-08-12
      • 1970-01-01
      • 1970-01-01
      • 2018-01-29
      相关资源
      最近更新 更多