【问题标题】:How to close gmail compose dialog programmatically in chrome extension如何在 Chrome 扩展程序中以编程方式关闭 gmail 撰写对话框
【发布时间】:2019-01-20 22:27:50
【问题描述】:

我已将撰写对话框中的“发送”按钮替换为“发送”按钮,并使用“Gmail API”发送电子邮件。

我可以发送电子邮件并获得回复。

现在,为了使其更加用户友好,我想在发送电子邮件后关闭撰写对话框(与发送电子邮件时 Gmail 关闭对话框类似)。但我做不到。

注意:使用“Gmail API”成功发送电子邮件后,我也会删除该电子邮件的草稿。

更新:

使用 JQuery,我在对话框中获得“X”(关闭)元素,这是一个图像-

<img class="Ha" id=":2i" src="images/cleardot.gif" alt="Close" aria-label="Save & Close" data-tooltip-delay="800" data-tooltip="Save & Close">

我想在它上面触发一个点击事件,但它没有触发。

当我尝试在同一个对话框的“放弃”按钮上触发点击事件时,它成功地工作了。这是丢弃按钮-

<div id=":68" class="oh J-Z-I J-J5-Ji T-I-ax7" tabindex="1" role="button" data-tooltip="Discard draft" aria-label="Discard draft" style="user-select: none;">

如何点击img标签?

【问题讨论】:

  • 作为一种解决方法 - 可以通过 css-selector 获取“取消”按钮的“id”(或点击原始“发送”按钮后发生的任何事情)并触发“点击”事件。
  • 我尝试使用 css-selectors 但找不到合适的解决方案。
  • 据我所知,Gmail 是使用“Closure”内部框架构建的。您可能需要查看内部实现并了解如何“侵入”它(查看事件如何工作,如何对它们做出反应)。见:stackoverflow.com/questions/19273795/…
  • 这个相关的话题也可以帮助stackoverflow.com/questions/23174710/…
  • 谢谢@PavelSapehin 我会看看参考资料:)

标签: google-chrome-extension gmail-api


【解决方案1】:

您可以向inbox sdk 寻求帮助。效果很好。

sdk.Compose.registerComposeViewHandler( (composeView) => {
    composeView.on('presending', function (event) {
        //do anything you want to
        composeView.close(); // this will close the compose window
})

在 gmail 自己发送邮件之前,您可以照常使用 gmail api 发送邮件,然后这将关闭撰写窗口并保存草稿。 由于您已经集成了自己的发送按钮,因此您需要相应地使用该库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-30
    • 1970-01-01
    • 2017-10-14
    • 2021-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多