0

私は AngularJS アプリケーションを開発しており、それから Chrome 拡張機能を作成しようとしています。

アプリケーションは JSON 形式でリモート サーバーからフィードを取得し、値の 1 つは ngSanitize を使用してバインドされた HTML です。それをバインドして、そのコンテンツを Chrome アプリケーションの一部として表示するまでは、すべて問題ありません。

「問題」は強制されているCSPにあり、それを回避する方法がないことを私は知っています(サンドボックスとWebビューがなければ、これはオプション外だと思います)。

リモート リソースに対して XHR リクエストを作成し、それらを blob としてマークすることは、Google によって使用および提案されているものですが、この場合、Angular はすべての HTML の解析と Web ページへのロードを行っています。

私の質問は、誰かが同様の問題を抱えているかどうか、および/またはこれにどのように対処できるかです。

ありがとう!

EDIT 1. HTML には、たとえば img タグが含まれている場合があります。このようにして、テキスト以外は何も表示されません。

EDIT 2.私は仕事をするかもしれない次のアイデアを思いつきました。

  1. HTML テキストを取得する
  2. 問題のあるタグの後にディレクティブを追加します (例: im)
  3. ディレクティブがsrc属性から URL を取得し、XHR リクエストを行うようにします。
  4. 受信後、BLOB としてマークし、src属性で提供します。

私はそれほど多くの経験を持っていないので、このアイデアに落とし穴はありません。

4

1 に答える 1

1

バックグラウンド スクリプトをプロキシとして使用すると、xhr を実行して sendResponse で応答を返すことができます。

拡張通信に関するドキュメント

テンプレートでこれを使用することを忘れないでください

<html data-ng-app="myApp" data-ng-csp>

ng-cspangularディレクティブを実行できるようになります

これがあなたの質問に答えることを願っています

于 2014-09-24T11:40:46.953 に答える