$(selector).click()
导致什么都没有发生。
this answer在浏览器控制台中将javascript上下文设置为iframe,但不在主页上工作:
simulateMouseClick($("iframe").contents().find(selector))
结果:
未捕获的TypeError:targetNode.dispatchEvent不是函数
在triggerMouseEvent(:5:20)
在:8:9
在Array.forEach()
在SimulationMouseClick(:7:52)
在:1:1
$("iframe").contents().find(selector).text()
给了我期望的内容,因此它是正确的元素。
我该如何实现?
编辑:将其添加为人们显然无法阅读的内容:
$("iframe").contents().find(selector).click()
完全没有任何作用,因为.click()
不能模拟真正的鼠标单击。
答案 0 :(得分:2)
使用jQuery:
$("iframe").contents().find(selector).click();
使用Vannila JS:
使用window.frames可以访问iframe的窗口对象,如Mozilla doc
所述您可以使用此对象在iframe中查找元素,然后在脚本中使用它们。例如:
var iframeWindow = window.frames[0];
var element = iframeWindow.document.getElementsByClassName("selector")[0];
element.click();
答案 1 :(得分:0)
获取 jQuery 对象中的元素,并使用 vanillaJS .click()
方法:
$("iframe").contents().find(selector)[0].click();
就是这样。
PS:我知道这是一个老问题,但我遇到了同样的问题并以这种方式解决了:)