【问题标题】:Is there a way to intercept the Gmail Compose window Send button using InboxSDK?有没有办法使用 InboxSDK 拦截 Gmail 撰写窗口的发送按钮?
【发布时间】:2020-02-24 23:05:11
【问题描述】:

我正在编写一个 Chrome 扩展程序,用于修改 Gmail 撰写窗口以添加一个控件,允许用户在使用我们的专有协议或作为常规电子邮件发送邮件之间进行选择。我的问题是,一旦扩展确定了控件的状态,它如何拦截Send按钮发送的事件?

【问题讨论】:

    标签: javascript google-chrome-extension gmail inboxsdk


    【解决方案1】:

    使用 Javascript 最简单的方法:

    • 找到原始发送按钮并克隆它
    • 为假按钮添加事件监听器
    • 一旦用户选择使用您的专有协议发送邮件,只需将原始按钮替换为假按钮
    • 如果用户选择作为普通邮件发送,则显示原始按钮

    我在控制台中尝试的一个简单示例(在 ComposeView 打开时使用它):

    // find the original button
    const originalSendButton = document.querySelector('.mt-send');
    // clone it
    const fakeSendButton = originalSendButton.cloneNode(true);
    fakeSendButton.addEventListener('click', () => alert('Fake Send Button clicked'));
    // show fake button
    originalSendButton.parentNode.replaceChild(fakeSendButton, originalSendButton);
    
    // show original button if needed
    // fakeSendButton.parentNode.replaceChild(originalSendButton, fakeSendButton);
    
    

    【讨论】:

    • 谢谢,安德拉斯。你的想法很有意义。我试试看。
    • 我认为更好的方法是使用撰写视图“提交”事件并取消发送过程。做任何你想做的事,然后在必要时以编程方式触发发送。
    猜你喜欢
    • 2018-05-26
    • 2020-02-26
    • 2011-09-20
    • 1970-01-01
    • 1970-01-01
    • 2018-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多