2012-04-29 96 views
1

我是鉻擴展開發的新手,我正在構建一個需要側面板(不是彈出窗口),如螢火蟲,但在右側。 我在側面板中使用jsTree(帶有json_data),我想將元素從網頁拖到側面板。鉻擴展,jstree,iframe:拖放

到目前爲止,爲了創建側面板,我使用了一個帶有z-index的主體,以便它出現在網頁上方,但是我的側面板中的元素樣式因爲網站的CSS。

所以我想我可以使用一個iframe來避免我的側面板內的任何CSS不兼容。 我使用src =「chrome-extension:///page.html」動態創建iframe。

我已經設法通過直接在iframe的源代碼頁中加載jquery + jstree腳本來使我的jstree在我的iframe中正常工作......這非常糟糕,但我無法獲取用於iframe的源頁面(儘管「all_frames」:true)。

我想將元素從網站的頁面拖入iframe的jstree中... 我找到了iframeFix:true和refreshPositions:true,但這似乎沒有改變任何東西... 任何人都知道如何做到這一點?

如果我不使用iframe,根據Web上的多個示例,我可以使用dnd插件輕鬆地將元素拖放到jstree。 我還沒試過;即使它有效,我側面面板中的CSS也會被修改,我不能讓這種情況發生。

我見過「iframe之上的div層」技術。我可以在iframe上方的div上成功刪除網頁中的元素。 但是,當我嘗試通過端口向iframe發佈消息(包含已刪除元素的數據)時,iframe不會收到消息。 我在這種情況下的想法是以某種方式將消息添加到jstree的json數據。

我已閱讀了關於content_scripts和iframe的所有帖子,我知道這些bug ...我無法弄清楚它是否是固定的,如果是,我不知道如何使ifram和內容腳本之間的端口通信工作。 任何人都知道更多?

我還應該補充一點,當我嘗試使用端口在內容腳本和iframe之間進行通信,並將背景頁面中的iframe中的偵聽器複製到背景頁面時,意味着端口通信工作正常,我猜想,但不在內容腳本和iframe之間...

有什麼想法?我真的被卡住了

回答

0

回答我自己的問題; 我還沒有找到一個解決方案,如何使用jstree的鉻擴展中使用iframe。

我只是爲了硬核的方式;將<div>附加到<body>,並確保通過大量測試,我的<div>中的css將與網頁的CSS保持隔離。

乾杯