2012-04-29 17 views
1

私はクロームエクステンションの開発に慣れていません。サイドパネル(ポップアップではない)が必要です。 サイドパネルでjsTree(json_data)を使用しています。ウェブページからサイドパネルに要素をドラッグします。クロムエクステンション、jstree、iframe:ドラッグ&ドロップ

これまではサイドパネルを作成するために、ボディにZ-インデックスを付けたdivを使用して、ウェブページの上に表示するようにしましたが、サイドパネルの要素のスタイルは変更されていますウェブサイトのCSS。

私はサイドパネル内でCSSの非互換性を避けるためにiframeを使用できると考えました。 iframeをsrc = "chrome-extension:///page.html"で動的に作成します。

iframeのソースページにjquery + jstreeスクリプトを直接ロードすることで、私のifstyleでjstreeを正常に動作させることができました...それはかなり悪いですが、コンテンツスクリプトをiframeのソースページ(「all_frames」にもかかわらず:true)。

私がiframeFix見つけた ... iframe内jstreeにウェブサイトのページから要素をドラッグしたいと思います:真とrefreshPositionsを:真が、それは何も変更していないようです... 誰でもそのことを知っていますか?

iframeを使用しない場合、ウェブ上の複数の例によれば、dndプラグインを使用して要素をjstreeに簡単にドロップできます。 私はそれを試していません。それが働いても、私のサイドパネルのCSSは変更され、私はそれを起こさせることはできません。

"iframeの上のdivレイヤー"テクニックを見てきました。私は正常にそのdivのiframeの上のWebページから要素をドロップすることができます。 しかし、ポートを介してiframeにメッセージ(ドロップされた要素のデータを含む)を投稿しようとすると、iframeはメッセージを受信しません。 この場合、私の考えは、何とかjstreeのjsonデータにメッセージを追加することです。

私はcontent_scriptsとiframeについて見つけたすべての記事を読んだことがあります。私はバグについて知っています...固定されているかどうかはわかりません。そうであればわかりませんiframとコンテンツスクリプトとの間のポート通信を動作させる方法。 誰でも知っていますか?

また、ポートを使用してコンテンツスクリプトとiframe間の通信を試み、バックグラウンドページのiframeからリスナーをコピーすると、バックグラウンドページがメッセージを受信します。ポートの通信がうまく動作していることを意味しますが、コンテンツスクリプトとiframeの間ではありません。

私は本当に立ち往生しています

答えて

0

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

私はハードコアの方法に向かっています。 <div><body>に追加し、私の<div>内のCSSがウェブページのCSSから隔離されたままであることを多くのテストによって確認してください。

乾杯

関連する問題