如何点击动态加载的 iframe 内的按钮
标题说明了一切。我正在使用一个 iframe,我唯一知道的是其 src 属性的一部分。到目前为止,我可以通过目标元素(已知)id 到达目标元素(锚点):
var f = $('iframe[src^="url"]', newTabBrowser.contentDocument);
if ( ! f.length)
return;
var b = f.contents().find('#button');
if ( ! b.length)
return;
此时,我已将所需的锚点元素放入 jQuery 变量 b
中,但我无法单击它。锚是这样的:
<a href="javascript:void(0);" id="button" role="button" tabindex="0"></a>
我已经尝试过:
b.click();
和:
simulateClick(b);
function simulateClick(elm) {
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
var canceled = !elm.dispatchEvent(evt);
if(canceled) {
return false;
} else {
return true;
}
}
两者都不起作用。关于如何进行或尝试其他技术的任何想法?
OBS:这是 FF 插件的一部分。这就是我使用 newTabBrowser.contentDocument
的原因
The title say it all. I am working with a iframe whose the only thing I know is part of their src attribute. Until now I can reach the target element (an anchor) by their (known) id:
var f = $('iframe[src^="url"]', newTabBrowser.contentDocument);
if ( ! f.length)
return;
var b = f.contents().find('#button');
if ( ! b.length)
return;
At this point I have the desired anchor element into the jQuery variable b
, but I can't click it. The anchor is like this:
<a href="javascript:void(0);" id="button" role="button" tabindex="0"></a>
I have tried:
b.click();
and:
simulateClick(b);
function simulateClick(elm) {
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
var canceled = !elm.dispatchEvent(evt);
if(canceled) {
return false;
} else {
return true;
}
}
None of both works. Any idea about how to proceed or another technique to try?
OBS: This is part of a FF addon. That's why I use newTabBrowser.contentDocument
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这对你有用吗:
希望它在某种意义上有帮助。
Does this work for you:
Hope it helps in some sense.