chrome extension,jstree,iframe:拖放

时间:2012-04-29 14:30:36

标签: css google-chrome iframe google-chrome-extension jstree

我是Chrome扩展程序开发的新手,我正在构建一个需要侧面板(不是弹出窗口),如firebug但在右侧。 我在侧面板中使用jsTree(带有json_data),我想将元素从网页拖到侧面板。

到目前为止,为了创建侧面板,我使用了一个带有z-index的主体附加的div,使其显示在网页上方,但是由于网站的原因,我的侧面板中的元素样式被更改了的CSS。

所以我想我可以使用iframe来避免我的侧面板中的任何css不兼容。 我动态创建iframe,使用src =“chrome-extension:///page.html”。

我已经设法通过在iframe的源页面中直接加载jquery + jstree脚本来使我的jstree在我的iframe中正常工作......这很糟糕但是我无法将内容脚本用于iframe的源页面(尽管“all_frames”:true)。

我想将网站页面中的元素拖到iframe中的jstree中... 我发现iframeFix:true和refreshPositions:true,但这似乎没有改变任何东西...... 谁知道怎么做?

如果我不使用iframe,根据网络上的多个示例,我可以使用dnd插件轻松地将元素删除到jstree。 我没试过;即使它有效,我的侧面板中的CSS也会被改变,我不能让它发生。

我见过“iframe上方的div层”技术。我可以成功从iframe上方的div上的网页中删除一个元素。 但是,当我尝试通过端口向iframe发布消息(包含已删除元素的数据)时,iframe不会收到消息。 在这种情况下我的想法是以某种方式将消息添加到jstree的json数据。

我已经阅读了有关content_scripts和iframe的所有帖子,我知道错误...我无法弄清楚它是否已修复,如果是,我不知道如何使ifram和内容脚本之间的端口通信工作。 有人知道更多吗?

我还应该补充一点,当我尝试使用端口在内容脚本和iframe之间进行通信,并从后台页面中的iframe复制监听器时,后台页面收到的消息就好......这只是意味着我认为端口通信工作正常,但内容脚本和iframe之间没有...

有什么想法?我真的被困了

1 个答案:

答案 0 :(得分:0)

回答我自己的问题; 我还没有找到如何在带有jstree的chrome扩展中使用iframe的解决方案。

我只是选择硬核方式;在<div>附加一个<body>,并确保通过大量测试我的<div>中的css将与网页的CSS保持隔离。

干杯