При вызове Ajax я получаю «блоб» контента, который мне нужно добавить в iframe.Я не контролирую содержимое ... это может быть только HTML или HTML + JavaScript.
В качестве "шаблона" я использую пустой HTML-файл в качестве источника iframe.После события загрузки «iframe» я помещаю шарик в его тело.В основном это работает (используя jQuery):
$iframe.contents().find('body').html(my blob);
В результате получается, что "оконный" объект JS, внедренный в эту систему, является window.top
, родительским окном.Почему?
Я думаю, что проблема может быть связана с тем, как работает jQuery html (), но я не могу найти кросс-браузерный способ выполнения той же операции без использования jQuery.
Любая помощь приветствуется.
Редактировать: это очень минимальный случай:
<iframe id="z" src="scene.html"></iframe>
<script>
var xxx = 13;
$("#z").load(function() {
var c = "<scri" + "pt>console.log(xxx)</scr" + "ipt>";
$(this).contents().find('body').append(c);
})
</script>
В консоли мы читаем «13» (и я не имею доступа к объектам JavaScript, которые ужеприсутствует в scene.html).