Было задано несколько вопросов о том, как получить глобальную переменную в iframe. Я хотел бы знать, как объявить и инициализировать глобальную переменную в области iframe от родителя. Я знаю, что могу получить доступ к переменной из iframe, используя document.myGlobalVariable
, но я хотел бы иметь возможность ссылаться на нее, просто говоря myGlobalVariable
, без document.
спереди.Объявить и инициализировать глобальную переменную в области iframe с использованием Javascript (того же домена)
Вот мой HTML:
<html>
<head>...</head>
<body>
...
<iframe src="myFrame.html"></iframe>
<script type="text/javascript">
var iframe = document.querySelector('iframe');
var iframeDocument = iframe.contentDocument || iframe.contentWindow.document;
iframeDocument.myGlobalVariable = "Hello";
</script>
</body>
</html>
myFrame.html
<html>
<body>
...
<script type="text/javascript">
// wait for document to load so parent script can finish running
$(function() {
console.log(document.myGlobalVariable); // <-- This works
console.log(myGlobalVariable); // <-- But this doesn't (and I want this one)
});
</script>
</body>
</html>
Спасибо!
Спасибо @Quentin. Кажется, я редактировал свой вопрос, пока вы отвечали. Вы заметите, что я знал, что 'document.myGlobalVariable' будет работать, но как я могу его использовать, так что это просто глобальная область (окна, я думаю?), Так что я могу просто ссылаться на нее с помощью myGlobalVariable 'без' document' спереди? –
Кроме того, спасибо за указание вопроса о загрузке заказа. В моем коде реального мира я использую jQuery, чтобы дождаться загрузки документа до запуска JS iframe. Я добавил это к моему вопросу, чтобы он не отвлекал от моего фактического вопроса. –
Получил это. Вместо этого нужно добавить его в область окна. Добавил мой ответ и примет его. Подтвердил ваш ответ. –