在iFrame jQuery中选择一个元素

cyc*_*ero 115 javascript iframe getelementbyid

在我们的应用程序中,我们解析一个网页并将其加载到iFrame中的另一个页面中.加载页面中的所有元素都有其tokenid-s.我需要通过那些tokenid-s选择元素.意思是 - 我点击主页面上的一个元素,然后在iFrame的页面中选择相应的元素.在jQuery的帮助下,我按以下方式进行:

function selectElement(token) {
     $('[tokenid=' + token + ']').addClass('border'); 
}
Run Code Online (Sandbox Code Playgroud)

但是使用此功能,我只能选择当前页面中的元素,而不能选择iFrame中的元素.有谁能告诉我如何在加载的iFrame中选择元素?

谢谢.

Dar*_*rov 148

var iframe = $('iframe'); // or some other selector to get the iframe
$('[tokenid=' + token + ']', iframe.contents()).addClass('border');
Run Code Online (Sandbox Code Playgroud)

另请注意,如果src此iframe指向其他域,则出于安全原因,您将无法在javascript中访问此iframe的内容.

  • 请注意,$('iframe')不会直接返回iframe.你需要把它拉出阵列. (7认同)
  • @cycero,它应该工作.你是否动态生成这个iframe?不要忘记,如果您将此iframe的src元素指向另一个域而不是出于安全原因,则无法访问其内容. (3认同)

Kev*_*sox 49

看一下这篇文章:http://praveenbattula.blogspot.com/2009/09/access-iframe-content-using-jquery.html

$("#iframeID").contents().find("[tokenid=" + token + "]").html();
Run Code Online (Sandbox Code Playgroud)

将选择器放在find方法中.

但是,如果iframe不是来自您的服务器,则可能无法实现.其他帖子谈论权限被拒绝错误.

jQuery/JavaScript:访问iframe的内容


Far*_*uti 20

当你的文档准备就绪并不意味着你的iframe也准备好了,
所以你应该听iframe加载事件然后访问你的内容:

$(function() {
    $("#my-iframe").bind("load",function(){
        $(this).contents().find("[tokenid=" + token + "]").html();
    });
});
Run Code Online (Sandbox Code Playgroud)