gpt4 book ai didi

javascript - 无法通过 Chrome 上的 JavaScript 控制台触发 元素上的 onmouseup 事件

转载 作者:行者123 更新时间:2023-11-28 12:59:55 25 4
gpt4 key购买 nike

无法通过 Chrome 上的 Javacript 控制台触发 “tr”元素上的 onmouseup 事件。

元素是这样的(抱歉无法分享确切的代码):

< tr class="one" style="height:20px;" onmouseup="click(event,this)"> Text </tr>

在控制台中,我执行了以下步骤:

document.getElementsByClassName("one")[0].onmouseup()

我收到错误:

Uncaught TypeError: Cannot read property 'metaKey' of undefined
at Object.i [as click] (filename:linenumber)
at HTMLTableRowElement.onmouseup (Workbox?ajax:1)
at <anonymous>:1:45

在随附的 js 源文件中,在给定行号的函数 i 中,正在检查 event.metaKey:

    n = b.metaKey || b.ctrlKey

在这一行中,显示错误。

当我自己用手(鼠标)单击时,此事件有效。当我使用该命令执行相同操作时,它无法正常运行。由于这个“metaKey”没有正确传递给它。我可以将它传递给 onmouseup() 调用吗?还有其他办法吗?在 mouseEvents 的上下文中,metakey 到底指的是什么?在其他问题上,据说“Win”键是元键。但是手动单击时,我没有按任何其他键,只是按鼠标。那里是如何运作的?

我的最终目标是在同一个元素上调用相同的函数onmouseup,但使用Java中的selenium库。我还在使用 xpath 获取的元素上使用 JavaScript Executor。它也给出了同样的错误。因此,如果这有效,那么它也应该在那里有效。

我已经仔细检查过是否选择了相同的元素而不是其他元素。我可以做什么来解决这个问题?

最佳答案

就像 @teemu 在评论中所说,您所做的不是事件触发器,只是调用函数 onmouseup()。问题是此调用没有在示例中称为 b 的事件参数,因此 n = b.metaKey || b.ctrlKeyn = undefined.metakey ||未定义.ctrlKey

要创建 mouseup 事件,请使用:

newEvt = new MouseEvent("mouseup", {    bubbles: true,    cancelable: true,    screenX: <your wanted X value>,    screenY: <your wanted Y value>,    clientX: <your wanted X value>,    clientY: <your wanted Y value>});// screenX, screenY, clientX and clientY are optionals and default to 0document.getElementsByClassName("one")[0].dispatchEvent(newEvt);

请参阅 MDN MouseEvent 文档:https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent

<小时/>

关于metakey,它们对应于windows键或mac上的⌘(来源:https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/metaKey)

关于javascript - 无法通过 Chrome 上的 JavaScript 控制台触发 <tr> 元素上的 onmouseup 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51610162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com