【发布时间】:2018-10-04 17:22:55
【问题描述】:
无法通过 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
在这一行,错误显示。
当我自己用手(鼠标)单击时,此事件有效。当我使用该命令执行相同操作时,它无法正常运行。由于这个“元密钥”没有正确传递给它。我可以通过 onmouseup() 调用传递它吗?还有其他方法吗?在 mouseEvents 的上下文中,metakey 到底指的是什么? 在其他问题上,据说“Win”键是元键。但是当手动点击时,我不按任何其他键,只按鼠标。它在那里是如何工作的?
我的最终目标是在同一个元素上调用相同的函数 onmouseup,但使用 Java 中的 selenium 库。我还在使用 xpath 获得的元素上使用 JavaScript Executor。它在那里也给出了同样的错误。 因此,如果这有效,它也应该在那里有效。
我已仔细检查是否选择了相同的元素而不是其他元素。 我可以做些什么来解决这个问题?
【问题讨论】:
-
这不完全是事件触发器,你只是在调用事件处理函数。
-
好的,那我该怎么办?我是这个领域的新手。还有,Trigger 和 call 的意思不一样呢?
-
使用addEventListener附加事件,dispatchEvent触发事件。
标签: javascript mouseevent onmouseup