2016-11-17 150 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

非常感謝您的解釋。 –