从iframe Jquery中删除元素

时间:2016-11-17 19:17:25

标签: jquery iframe

我有一个来自泳池应用webservice的内置iframe。 要添加池的iframe,我添加以下代码:

m_PacketMap.end()

加载iframe时html的结构是:

<script>
  (function(d, s, id){
    var js,
        fjs = d.getElementsByTagName(s)[0],
        p = (('https:' == d.location.protocol) ? 'https://' : 'http://'),
        r = Math.floor(new Date().getTime() / 1000000);
    if (d.getElementById(id)) {return;}
    js = d.createElement(s); js.id = id; js.async=1;
    js.src = p + "www.opinionstage.com/assets/loader.js?" + r;
    fjs.parentNode.insertBefore(js, fjs);
  }(document, 'script', 'os-widget-jssdk'));
</script>
<div id="18993" class="os_widget" data-path="...." data-comments="false" data-of="..."></div>

我想隐藏或删除h1。

我尝试过这些没有成功,即使它不允许我向iframe添加id,当然我也无法删除或隐藏h1:

a)

<div id="18993" class="os_widget" style="..." ... >
    <div class="os_widget_container os_widget_container0" style="..." >  
        <iframe " name="os_frame" style="..." src="... "> (no id)    
            <!DOCTYPE html>
                    ...
                    <body>
                         ...
                         <h1> </h1>
                         ...
                    </body>
             </html>
        </iframe>
    </div>
</div>

b)

<script>
$(document).ready(function(){

var iFr = $('iframe');
iFr.load(function() {
    iFr.attr('id','something');
    iFr.contents().find('h1').css({'display' : 'none'});
    //iFr.contents().find('h1').remove();
    //$('something').contents().find('h1').hide();
    });
}); 
</script>

任何帮助,都会很棒并且很感激 最好 何

1 个答案:

答案 0 :(得分:1)

出于安全原因,您无法访问iFrame的内容,其来源来自另一个域,称为same-origin policy

有一些解释被解释为here

当您有权访问iframes源和/或域时,访问iframe中html的最可靠方式是。

一种肮脏的方式是从另一方抓取html并将其包含在你的域名下,但我绝对不会建议这样做。 你失去了很多功能,可能会错过重要的更新。