SVG 要素を読み取り、それを他の HTML でラップし、新しく生成された HTML でポップアップを開いて印刷できる IE 11 アドオンを作成しています。
私が直面している問題は、設定で「IFrame で実行」をオンにしているにもかかわらずです。拡張機能は、ページ上のほとんどの iframe を見つけることができません。このアドオンを作成しているサイトはhttps://app.powerbi.comであることに注意してください。PowerBI は Angular を使用して構築されており、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($);
});
});
上記のコードでは、ブラウザーでアドオン ボタンをクリックすると、次の出力のみが表示されます。
=== 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>