协慌网

登录 贡献 社区

jQuery / JavaScript:访问 iframe 的内容

我想使用 jQuery 操纵 iframe 中的 HTML。

我以为我可以通过将 jQuery 函数的上下文设置为 iframe 的文档来实现这一点,例如:

$(function(){ //document ready
    $('some selector', frames['nameOfMyIframe'].document).doStuff()
});

然而,这似乎不起作用。稍微检查一下,我发现frames['nameOfMyIframe']中的变量是undefined除非我等待一段时间加载 iframe。但是,当 iframe 加载时,变量不可访问(我得到permission denied - 类型错误)。

有没有人知道这方面的解决方法?

答案

如果<iframe>来自同一个域,则可以轻松访问这些元素

$("#iFrame").contents().find("#someDiv").removeClass("hidden");

参考

我认为你所做的事情遵循相同的原产地政策 。这应该是您获得权限被拒绝类型错误的原因。

$(document).ready(function(){
    $('#frameID').load(function(){
        $('#frameID').contents().find('body').html('Hey, i`ve changed content of <body>! Yay!!!');
    });
});