css - chrome 扩展,jstree,iframe : drag and drop

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

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

到目前为止,为了创建侧面板,我使用了一个带有 z-index 的附加到 body 的 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 的所有帖子,我知道这些错误......我不知道它是否已修复,如果是,我不知道如何使 ifram 和内容脚本之间的端口通信正常工作。 有谁知道更多吗?

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

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

最佳答案

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

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

干杯

关于css - chrome 扩展,jstree,iframe : drag and drop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10372906/

相关文章:

css - 调整页面垂直居中内容

使用变换 : rotate 时悬停的 CSS 动画停留在最后一个关键帧

javascript - 扩展程序如何直接与谷歌日历交互?

html - 为什么 CSS 菜单不适用于谷歌浏览器

javascript - html的执行顺序

javascript - 使用 javascript 隐藏 IFRAME 滚动条

css - Flash 播放器不适合屏幕

html - CSS 在 Chrome 中工作但在 Firefox 中不工作(div 高度)

javascript - Youtube 播放器 API 差异(Chromeless 与 IFrame)- 哪个更好?

php - WooCommerce 更改加载微调器图标