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

时间:2011-11-21 00:08:10

标签: javascript jquery iframe firefox-addon click

标题说明了一切。我正在使用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

的原因

1 个答案:

答案 0 :(得分:0)

这适合你吗?

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

        });

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