2016-11-17 4 views
2

У меня есть встроенный 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.

Я попытался это, но безуспешно, даже это не позволяет мне добавить идентификатор в 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> 

б)

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

Любая помощь, было бы здорово, и оценили Best Хосе

+1

Вы не можете получить доступ к элементам внутри iFrame, которые получают его содержимое с другого URL/домена – empiric

+1

Спасибо @empiric Не существует исключения, не так ли? –

+1

[This] (http://madskristensen.net/post/iframe-cross-domain-javascript-calls) ressource может вам помочь. Но в целом, когда у вас нет полного доступа к источнику/домену iFrames, это ограничение связано с соображениями безопасности. – empiric

ответ

1

Из соображений безопасности вы не можете получить доступ к содержимому в плавающем фрейме с его источником приходит вид другой домен, называемый same-origin policy

Есть некоторые excpetions, которые поясняются here.

Самый надежный способ доступа к html внутри iframe - это когда вы имеете доступ к источнику и/или домену iframes.

Грязный путь вокруг этого будет соскабливать html с другой стороны и включать его под ваш домен, но я определенно не рекомендую это делать. Вы теряете много функциональности и, возможно, пропустите важные обновления.

+0

Большое спасибо за объяснение. –

Смежные вопросы