首页 > 解决方案 > 如何模拟*真实*鼠标单击 iframe 中的元素

问题描述

$(selector).click()结果什么也没发生。
此答案适用于浏览器控制台,其中 javascript 上下文设置为 iframe,但不适用于主页: simulateMouseClick($("iframe").contents().find(selector)) 结果:

未捕获的类型错误:targetNode.dispatchEvent 不是
triggerMouseEvent (:5:20)
at :8:9
at Array.forEach () atsimulateMouseClick (
:7:52)
at :1:1 的函数

$("iframe").contents().find(selector).text()给了我预期的东西,所以它是正确的元素。

我怎样才能做到这一点?

编辑:添加这个因为人们显然无法阅读:
$("iframe").contents().find(selector).click()
绝对没有效果,因为.click()它不模拟真正的鼠标点击。

标签: javascriptjquery

解决方案


使用 jQuery:

$("iframe").contents().find(selector).click();

使用 Vannila JS:

使用 window.frames 可以让您访问 iframe 的窗口对象,如Mozilla 文档中所述

您可以使用此对象在 iframe 中查找元素并在脚本中使用它们。例如 :

  var iframeWindow = window.frames[0];
  var element = iframeWindow.document.getElementsByClassName("selector")[0];
  element.click();

推荐阅读