0

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

1 に答える 1

0

Run in Iframes機能は、ロード時にページ上に存在する iframe で実行するように設計されています。したがって、動的にロードされた iframe では実行されません。

[開示:私はクロスライダーの従業員です]

于 2016-05-15T14:14:14.453 に答える