【发布时间】:2012-05-09 12:23:48
【问题描述】:
我是 chrome 扩展开发的新手,我正在构建一个需要侧面板(而不是弹出窗口)的面板,例如 firebug,但在右侧。 我在侧面板中使用 jsTree(带有 json_data),我想将元素从网页拖到侧面板。
到目前为止,为了创建侧面板,我使用了一个附加到带有 z-index 的主体的 div,以便它显示在网页上方,但是我的侧面板中的元素样式由于网站的.
所以我想我可以使用 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 之间没有......
有什么想法吗?我真的卡住了
【问题讨论】:
标签: css google-chrome iframe google-chrome-extension jstree