1

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

到目前为止,为了创建侧面板,我使用了一个附加到带有 z-index 的主体的 div,以便它显示在网页上方,但是由于网站的 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,根据网络上的多个示例,我可以使用 dnd 插件轻松地将元素拖放到 jstree。我没试过;即使它有效,我侧面板中的 css 也会被更改,我不能让这种情况发生。

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

我已经阅读了我发现的所有关于 content_scripts 和 iframe 的帖子,我知道这些错误......我不知道它是否已修复,如果是,我不知道如何制作ifra 和内容脚本之间的端口通信工作。有人知道更多吗?

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

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

4

1 回答 1

0

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

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

干杯

于 2012-05-05T11:31:10.400 回答