Как получить высоту содержимого iframe, когда src закодирован в base64?

Вот iframe, содержимое которого я хочу отображать динамически.

<iframe onload='resize()' id='ifr' src='data:text/html;charset=utf-8;base64,Encoded text here' width=100% height=400px></iframe>

Я пробовал что-то вроде этого .. но высота всегда возвращает 0

function resize() {
   $('#ifr').height($('#ifr').contents().height());
}

Вот jsfiddle ..

https://jsfiddle.net/zetapark/rajz6sy5/1/

Можете ли вы создать работающую демонстрацию где-нибудь, например, jsfiddle, plunker, codepen и т. д.? Или даже в стеке, щелкнув <> в редакторе вопросов.

charlietfl 18.11.2018 23:48
jsfiddle.net/zetapark/rajz6sy5/1
Zeta 19.11.2018 00:20

Я сделал jsfiddle ... он не определен .. не 0 ..

Zeta 19.11.2018 00:21

ОК, как я и подозревал. Невозможно получить к нему доступ из-за той же политики происхождения. jsfiddle.net/t7fk1364 Можно попробовать установить document.domain = 'yourPageDomain' в теге скрипта внутри iframe

charlietfl 19.11.2018 00:29

Не работает....

Zeta 19.11.2018 00:36

Правильно ... посмотрите на предупреждение системы безопасности в консоли, в котором говорится, что вы не можете получить доступ к объекту с перекрестным происхождением

charlietfl 19.11.2018 00:37
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
6
308
1

Ответы 1

$ ('iframe') предоставляет вам все iframe в вашем документе, поэтому вы должны либо указать идентификатор для своего фрейма и использовать его как $ ('# MYiframe'), либо получить первый элемент из того, что возвращает jquert.

function resize() {
   $('iframe')[0].height($('iframe')[0].contents().height());
}

и я также нашел в SO это для изменения размера iframe для содержимого.

iFrame.width  = iFrame.contentWindow.document.body.scrollWidth;
iFrame.height = iFrame.contentWindow.document.body.scrollHeight;

Другие вопросы по теме