2016-05-13 9 views
0

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

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

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

background.js

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

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

extension.js

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

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

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

=== 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> 

ответ

0

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

[Раскрытие: Я сотрудник Crossrider]

Смежные вопросы