私はChrome拡張機能の開発に不慣れで、firebugのように右側にサイドパネル(ポップアップではない)を必要とするものを構築しています。サイド パネルで jsTree (json_data を使用) を使用しており、要素を Web ページからサイド パネルにドラッグしたいと考えています。
これまでのところ、サイド パネルを作成するために、ウェブページの上に表示されるように、ボディに z-index を追加した div を使用しましたが、サイド パネルの要素のスタイルは、ウェブサイトの css のために変更されています。
そこで、iframe を使用して、サイド パネル内の CSS の非互換性を回避できると考えました。src="chrome-extension:///page.html" を使用して iframe を動的に作成します。
jquery + jstreeスクリプトをiframeのソースページに直接ロードすることで、iframeでjstreeを正常に機能させることができました...これはかなり悪いですが、iframeのソースページに使用するコンテンツスクリプトを取得できません( "all_frames": true にもかかわらず)。
Web サイトのページから要素を iframe の jstree にドラッグしたいのですが... iframeFix: true と refreshPositions: true を見つけましたが、何も変わらないようです... 誰でもその方法を知っています?
Web 上の複数の例によると、iframe を使用しない場合は、dnd プラグインを使用して要素を jstree に簡単にドロップできます。私は試していません。うまくいったとしても、サイド パネルの css が変更されてしまい、それを許すことはできません。
「iframeの上のdivレイヤー」テクニックを見てきました。iframeの上のそのdivのWebページから要素を正常にドロップできます。しかし、ポートを介してメッセージ (ドロップされた要素のデータを含む) を iframe に投稿しようとすると、iframe はメッセージを受信しません。この場合の私の考えは、どうにかしてメッセージを jstree の json データに追加することです。
content_scripts と iframe について見つけたすべての投稿を読みました。バグについては知っています...修正されているかどうかはわかりません。修正されている場合は、 iframe とコンテンツ スクリプト間のポート通信が機能します。それについて詳しく知っている人はいますか?
また、ポートを使用してコンテンツ スクリプトと iframe の間で通信を試み、バックグラウンド ページの iframe からリスナーをコピーしようとすると、バックグラウンド ページがメッセージを正常に受信することを追加する必要があります。これは、ポートが通信は正常に機能していると思いますが、コンテンツスクリプトとiframeの間では機能していません...
何かご意見は?私は本当に立ち往生しています