すべての Web ページで動作するように意図された chrome 拡張機能を開発しています。その機能の一部として、任意のページに UI を表示する必要があります。
現在、これを行うために、コンテンツ スクリプトからページに div (UI HTML を含む) を追加します。これに関する問題は、含まれているページのスタイルが拡張機能の UI に適用され、Web ページごとに異なって見えることです。
この問題を解決するには、次の 2 つの方法があります。
拡張機能の UI 要素に特定のスタイル (!important としてマーク) を適用します。ページによっては、どの要素のどの属性も異なる値を持つ可能性があるため、これは非常に困難です。
この UI を iframe に追加し、それをページに挿入します。もちろん、これはアプローチ 1 の CSS の問題を修正します。しかし、私は以前に拡張機能のコンテキストで iframe をあまり扱ったことがなく、注意すべき懸念があるかどうか疑問に思っています。
考えられる潜在的な問題のいくつか: 1. iframe js と対話するコンテンツ スクリプトが複雑になる場合があります。2. 一部のユーザーは、特定のサイトまたはすべてのサイトのブラウザー レベルで iframe を無効にしている可能性がありますか?
一般に、iframe の使用は、セキュリティとパフォーマンスの理由から (とりわけ) 嫌われています。このシナリオでは、iframe を使用することが最も賢明なオプションであるかどうか疑問に思っています。
また、拡張機能を後で Firefox に移植する予定です。これはおそらく関係ありませんが、決定を傾けるのに役立つ場合に備えて、そこに置いておきます.