javascript - 当我们回复电子邮件时,如何从 gmail 正文中删除跟踪像素?

标签 javascript google-chrome google-chrome-extension inboxsdk

在我的 chrome 扩展程序中,我使用的是 Inbox.sdk
当有人发送电子邮件时,我会在其中添加一个跟踪像素。 但是当有人回复我们的邮件时。然后我们回复它 - 跟踪像素存在于 body 内部 - 在 trim 部分 - 我们如何摆脱那个跟踪像素。

例如
A 和 B 正在对话,A 正在使用我的插件 -

一个 -------->。乙
(会附上追踪像素TP1)

现在B会回复A
A <------------ B

当A回复B时
A --------> B
(会附上新的追踪像素TP2)
但现在我们发送两个跟踪像素 -
1. TP2
2. TP1 - 因为它出现在回复正文中 - 在 trim 后的内容中。 所以问题是我们如何从回复正文中删除旧内容。
通过使用收件箱 sdk,如果以其他方式打开 trim 内容,我只能抓取正文 - 我们无法抓取 trim 内容男孩内部的内容。
如果问题不清楚,我可以发表评论,我会尝试扩展更多内容。

最佳答案

Gmail 使用 name="eut" 将 trim 后的内容保存在一个隐藏的输入字段中。 您可以做的是获取消息正文,找到最近的实际封装回复消息的祖 parent 表。然后找到这个输入元素,遍历它并删除所有跟踪像素。之后只需插入新的跟踪像素即可。

// get message body
var msg_el = composeView.getBodyElement();

// find the table which encapsulates the whole reply email.
var parent_div = el.closest('table').parentElement.closest('table').parentElement;
var email_form = parent_div.querySelector("form");
var form_input = email_form.querySelector('input[name="uet"]');

// get the trimmed text, convert it to a html object and remove tracking pixels
var email_text = form_input.value;

var images = $(email_html).find('img');
var val = null;
if (images.length > 0){
    for (var i = 0; i < images.length; i++) {
         var src = images[i].src;
         // find tracking pixel using url
         if (src.indexOf("tracking-pixel") !== -1){
             email_html.find(images[i]).remove();
        }
    }
}
val = email_html.outerHTML;
el.outerHTML = val;

// Insert your tracking pixel here.

希望这对您有所帮助。

关于javascript - 当我们回复电子邮件时,如何从 gmail 正文中删除跟踪像素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48483025/

相关文章:

javascript - Selenium - 如何查找元素的当前属性列表

html - 手动输入本地开发地址时如何阻止 chrome 搜索

javascript - 当我在浏览器上时看不到 Firebase 通知

google-chrome-extension - 使用 Chrome 49 隐藏扩展程序图标

google-chrome - Google Chrome固定选项卡突出显示未读

javascript - 为什么 requestAnimationFrame() 嵌套在这个 if 语句中时不起作用?

javascript - 在 DOM 中访问 textNode.style

javascript - 是否可以选择所有与选择器不匹配的元素?

javascript - 为什么对象在 Chrome DevTools 中不存在?

javascript - 检查 safari 浏览器是否能够安装扩展