我有一个来自泳池应用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>
任何帮助,都会很棒并且很感激 最好 何
答案 0 :(得分:1)
出于安全原因,您无法访问iFrame的内容,其来源来自另一个域,称为same-origin policy
有一些解释被解释为here。
当您有权访问iframes源和/或域时,访问iframe中html的最可靠方式是。
一种肮脏的方式是从另一方抓取html并将其包含在你的域名下,但我绝对不会建议这样做。 你失去了很多功能,可能会错过重要的更新。