1

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

4

1 回答 1

0

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

于 2019-10-30T10:25:58.627 回答