如何在 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 &amp; Close" data-tooltip-delay="800" data-tooltip="Save &amp; 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 撰写对话框的主要内容,如果未能解决你的问题,请参考以下文章
如何在 iPhone 应用程序中以编程方式传真文档? [关闭]