butteff
@butteff
Раз в тысячу лет заправляю свитер в носки

Как с помощью jquery или чистого js «взять» элемент внутри iframe?

Есть страница, внутри нее iframe c id = "iframe-5".
Есть код и он не работает:
$('iframe#iframe-5').load(function(){
    $(this).contents().find('h1').remove();
});


Такой тоже:
$('iframe#iframe-5').contents().find('h1').remove();


Если брать console.log от $('iframe#iframe-5').contents(), то объект имеет length:1, т.е. iframe вроде находит и берет его данные.

Но если брать console.log от $('iframe#iframe-5').contents().find('h1'), то возвращается объект с length = 0. К примеру, такой:
Object { length: 0, prevObject: {…}, context: HTMLDocument somefakeurl.com/client/statistics, selector: "h1" }

если h1 заменить на любой друго тег или селектор - все то же самое.
h1 или img - все эти элементы есть внутри фрэйма.

Что я делаю не так?
Как "взять" элемент внутри iframe? Есть ли иные способы кроме contents()?
Что может блокировать? Apache security headers отключены.
  • Вопрос задан
  • 2767 просмотров
Пригласить эксперта
Ответы на вопрос 2
@mnogosoka
Same-origin policy не соблюдается, можно в фрейм только своего домена
вот тут работает
https://jsfiddle.net/1rrmfxLh/8/
Ответ написан
Комментировать
SilenceOfWinter
@SilenceOfWinter
та еще зажигалка...
api.jquery.com/contents :
<iframe src="//api.jquery.com/" id="frameDemo"></iframe>
<script>
$( "#frameDemo" ).contents().find( "a" ).css( "background-color", "#BADA55" );
</script>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы