如何以编程方式生成 mousedown 或 keypress 事件?

发布于 2024-11-07 18:48:20 字数 314 浏览 0 评论 0原文

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

我想模拟谷歌文档演示视图页面的“上一个”、“下一个”工具栏上的单击操作。 不幸的是,这两个标签都带有与混淆的 javascript 相对应的 onmousedown 事件。

如果他们是锚, document.getElementById("ToolbarNext").onclick();作品。然而,同样的 onmousedown 似乎不起作用,可能是因为它需要鼠标坐标等。 我如何生成这个事件?

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

I am developing a chrome extension that runs some javascript on a particular web page.

I want to simulate a click action on the google docs presentation view page's 'prev', 'next' toolbar.
Unfortunately, both are tags with onmousedown events corresponding to obfuscated javascript.

If they were anchors,
document.getElementById("ToolbarNext").onclick(); works. However, the same for onmousedown does not seem to work, probably because it requires mouse co-ordinates, etc.
How do I generate this event?

An other option is to simulate a keypress 'j' or 'k' on the DOM. I tried a few options but could not figure that out either.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

夏の忆 2024-11-14 18:48:20

尝试dispatchEvent/fireEvent方法

try dispatchEvent/fireEvent methods

才能让你更想念 2024-11-14 18:48:20

您可以收集附加到 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>

You can collect the function that is attached to the onmousedown and execute it.
However you'll have to re-create the event object if you need it:

<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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文