Crossrider: расширение не может найти динамически генерируемые фреймы (IE 11)

Я делаю надстройку для IE 11, которая может читать элемент SVG, оборачивать его другим HTML, а затем открывать всплывающее окно с вновь сгенерированным HTML для его печати.

Проблема, с которой я столкнулся, заключается в том, что, несмотря на то, что я включил «Запуск в IFrame» в своих настройках. Расширение не может найти большинство фреймов на странице. Обратите внимание, что я делаю это дополнение для сайта https://app.powerbi.com. PowerBI построен с использованием Angular, а фреймы загружаются динамически.

Вот код, который у меня есть:

background.js

appAPI.ready(function($) {
    appAPI.browserAction.setResourceIcon('icon.png');

    appAPI.browserAction.onClick(function() {
       appAPI.message.toActiveTab('print');
    });
});

расширение.js

function tryPrint($) {
    console.log('===', document.location.href , '===')
}

appAPI.ready(function($) {
    appAPI.message.addListener(function(msg) {
       if(msg === 'print') tryPrint($); 
    });
});

С приведенным выше кодом, когда я нажимаю кнопку надстройки в браузере, я вижу только этот вывод:

=== https://app.powerbi.com/groups/me/reports/4dba04c3-8c3e-4e9e-abb8-a1fa58165928/ReportSection ===
=== https://app.powerbi.com/ewaIsolation.cshtml ===

Однако следующий iframe добавляется на страницу динамически, и кажется, что расширение не может его найти.

<iframe sandbox="allow-scripts" name="visual-sandbox" class="visual-sandbox" src="/sandbox?plugin=YourVisual1456308971941" style="width: 1630.17px; height: 922.83px;"> . . . </iframe>

person Moon    schedule 13.05.2016    source источник


Ответы (1)


Функция Запускать в окнах iframe предназначена для запуска в элементах iframe, существующих на странице при ее загрузке. Следовательно, он не работает с динамически загружаемыми фреймами.

[Раскрытие информации: я сотрудник Crossrider]

person Shlomo    schedule 15.05.2016