Получить значение переменной из <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