2016-11-17 84 views
2

我有一个来自池应用web服务的内置iframe。 添加池的IFRAME我添加以下代码:从iframe中删除元素Jquery

<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> 

的HTML的结构时加载的iframe是:

<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> 

我想隐藏或删除H1。

我尝试了这些没有成功,即使它不允许我添加id来iframe和我当然不能删除或隐藏H1:

一)

<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> 

b)

$(document).ready(function(){ 
var f = $("iframe"); 
f.load(function(){ 
    f.find(' h1').css({'display' : 'none'}); 
    //f.find('h1').hide(); 
    //f.contents().find('h1').remove(); 
    }); 
}); 
</script> 

任何帮助,将是巨大的,并赞赏 最佳 何塞

+1

您无法访问iFrame中从不同的URL /域获取其内容的元素 – empiric

+1

谢谢@empiric没有例外,对吧? –

+1

[This](http://madskristensen.net/post/iframe-cross-domain-javascript-calls)资源可能会帮助你。但一般来说,当您没有完全访问iFrames源/域时,由于安全原因,这受到限制。 – empiric

回答

1

出于安全考虑,您不能访问其源来形成另一个域的iFrame的内容,称为same-origin policy

有一些excpetions其解释here

访问iframes源和/或域时,访问iframe内部html的最可靠方式是。

一个肮脏的方式将是从另一端抓取HTML并将其包含在您的域名下,但我绝对不会推荐这样做。 你失去了很多功能,也许错过了关键的更新。

+0

非常感谢您的解释。 –