有没有办法使用 InboxSDK 拦截 Gmail Compose window Send 按钮?

Is there a way to intercept the Gmail Compose window Send button using InboxSDK?

我正在编写一个 Chrome 扩展来修改 Gmail Compose window 以添加一个控件,允许用户选择使用我们的专有协议或作为常规电子邮件发送消息。我的问题是,一旦扩展确定了控件的状态,它如何拦截发送按钮发送的事件?

使用 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);