【问题标题】:Chrome extension for GmailGmail 的 Chrome 扩展程序
【发布时间】:2023-04-09 16:15:01
【问题描述】:

我希望创建一个chrome extension 来修改用户的Gmail。 类似于rapportive 扩展的东西。

我已经尝试开发一个谷歌小工具,但我想设置一个正确的菜单上下文(如rapportive),我也尝试了raplets 解决方案,这不是我想要的。

我试图通过 google 查找文档,但我没有找到可以修改 Gmail 的内容。 你能帮我开始吗?

【问题讨论】:

    标签: javascript html google-chrome-extension widget gmail


    【解决方案1】:

    Rapportive 能够通过操作 Gmail 的 DOM 在 GMail 中添加 UI。

    这个想法是:

    • 当它识别出 GMail 在电子邮件线程中时(参见 Gmailjs 的 gmail.observe 方法)

    • 然后它通过直接操作 DOM 插入自己的 UI。

    • 然后根据当前线程的详细信息加载社交数据

    这些库将帮助您阅读 GMail 的当前状态(例如,当前所在的页面、电子邮件中涉及的所有人等)

    Gmailr:https://github.com/jamesyu/gmailr

    Gmailjs:https://github.com/KartikTalwar/gmail.js

    要操作 GMail 的 DOM,您始终可以使用 jQuery 或利用 chrome 的原生方法来操作 DOM,因为您不必担心跨浏览器的不一致

    【讨论】:

    • 谢谢,您的资源对我非常有用。我只是想念一件事。如何在右侧菜单中显示我的数据。
    • 更新了我对 Rapportive 等扩展程序如何修改 Gmail 用户界面的回答
    • 感谢您的资源对我帮助很大。我只是想知道一些事情。我的扩展程序运行良好,但有时它不会出现在 Gmail 中。这完全是随机的,没有任何逻辑。但是我显示了我的 console.log,所以我想这只是失败的 DOM 注入。我抓住了我想要设置小部件的 Gmail 网站部分,等待“document_end”(在我的 manifest.json 中指定)然后注入它,然后处理我想做的事情。但是为什么它每次都不起作用?
    • Gmail 是一个“单页应用程序”。即使 gmail 仍在加载状态,也会触发“document_end”,这可能是因为您尝试注入的元素尚不存在而导致您失败的情况。您必须找到一种方法来知道 gmail 何时完成加载并已经渲染了实际的应用程序,这就是您想要进行注入的时间。