1

私は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の間では機能していません...

何かご意見は?私は本当に立ち往生しています

4

1 に答える 1

0

私自身の質問に答えます。jstree を使用して chrome-extension で iframe を使用する方法に関する解決策が見つかりませんでした。

私は筋金入りの方法をとっています。<div>に aを追加し<body>、多くのテストを行って、my 内<div>の css が Web ページの css から分離されたままになることを確認します。

乾杯

于 2012-05-05T11:31:10.400 に答える