Получить значение переменной из <iframe> или <object>

В мой глобальный HTML-шаблон я встроил iframe, который может жить-превью {{src}} (например, src может быть public/tmp/bDCZ5rynnpLaYNEuAAAj/index.html).

<iframe id="myiframe" ng-src="{{src}}"></iframe>

index.html это файл, написанный моим сервером; У меня есть контроль над кодом, и я могу изменить его. index.html содержит код JavaScript, он спроектирован так, что всегда имеет внутреннюю переменную $output,

У меня вопрос, как получить значение $output вне iframe и пусть глобальная html страница знает значение.

Кто-нибудь знает, как этого добиться?

Редактировать 1: я также открыт для решений, где index.html может отправить значение на сервер или создать файл со значением, если глобальный шаблон может получить его позже. Кроме того, как я упоминаю в комментариях, цель iframe это предварительный просмотр папки файлов, есть другие способы сделать это (например, с помощью <object>), кто-нибудь знает, каким образом можно получить внутреннюю ценность?

Изменить 2: Я сделал плункер с iframe и плункер с объектом. $output определяется <script>var $output="Default"</script> в indexOutput.html. Моя цель - вывести это значение.

Редактировать 3: Я только что понял, что window.parent._resetter что @Roy предложил в своем ответе работает. Но одна вещь, _resetter Функция должна быть определена в скрипте HTML-страницы. Кто-нибудь знает, как передать это значение моему контроллеру? Вот плункер и плункер с окном $.

1 ответ

Решение

Вы можете общаться между root и iframe с window.parent.someFunction вызывается из фрейма. Вы должны создать в корне функцию, которая получает параметр и переустанавливает его на себя.

function _resetter(param){
  var paramRoot = param;
}


И вызвать эту функцию из iframe, передавая параметр ouput

window.parent._resetter(param);

См. /questions/5684496/vyizov-roditelskoj-okonnoj-funktsii-iz-iframe/5684507#5684507

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