如何点击动态加载的 iframe 内的按钮

发布于 2024-12-17 01:21:54 字数 987 浏览 1 评论 0原文

标题说明了一切。我正在使用一个 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

筱果果 2024-12-24 01:21:54

这对你有用吗:

$(document).ready(function() {
            var frame = $('#iframeID').get(0).contentDocument;
            $('#button', frame).click(function() {
                alert("Clicked me..!");
            });

        });

希望它在某种意义上有帮助。

Does this work for you:

$(document).ready(function() {
            var frame = $('#iframeID').get(0).contentDocument;
            $('#button', frame).click(function() {
                alert("Clicked me..!");
            });

        });

Hope it helps in some sense.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文