如何模拟 iframe 中元素的*真实*鼠标点击

Flu*_*Shy 5 javascript jquery

$(selector).click()结果什么也没发生。
这个答案在浏览器控制台中有效,并将 javascript 上下文设置为 iframe,但不是主页: simulateMouseClick($("iframe").contents().find(selector)) 结果是:

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

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

我怎样才能做到这一点?

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

小智 2

使用 jQuery :

$("iframe").contents().find(selector).click();
Run Code Online (Sandbox Code Playgroud)

与 Vannila JS 一起:

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

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

  var iframeWindow = window.frames[0];
  var element = iframeWindow.document.getElementsByClassName("selector")[0];
  element.click();
Run Code Online (Sandbox Code Playgroud)

  • 有人显然几乎没有读过这个问题,我在获取元素时没有问题,一个简单的“.click()”不起作用,它绝对没有效果,我发现的唯一方法在从主页。 (2认同)