如何在 Chrome 扩展程序中以编程方式关闭 gmail 撰写对话框

Posted

技术标签:

【中文标题】如何在 Chrome 扩展程序中以编程方式关闭 gmail 撰写对话框【英文标题】:How to close gmail compose dialog programmatically in chrome extension 【发布时间】: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”内部框架构建的。您可能需要查看内部实现并了解如何“侵入”它(查看事件如何工作,如何对它们做出反应)。见:***.com/questions/19273795/… 这个相关的话题也可以帮助***.com/questions/23174710/… 谢谢@PavelSapehin 我会看看参考资料:) 【参考方案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 发送邮件,然后这将关闭撰写窗口并保存草稿。 由于您已经集成了自己的发送按钮,因此您需要相应地使用该库。

【讨论】:

以上是关于如何在 Chrome 扩展程序中以编程方式关闭 gmail 撰写对话框的主要内容,如果未能解决你的问题,请参考以下文章

应用程序运行时如何在android中以编程方式关闭通知?

如何在 iPhone 应用程序中以编程方式传真文档? [关闭]

当app运行时,如何在android中以编程方式关闭通知?

在android中以编程方式关闭shift键

如何以编程方式禁用 chrome 开发人员工具中的 javascript?

屏幕关闭时如何在 UIPageViewController 中以编程方式翻页?