在我的Chrome扩展程序中,我正在使用Inbox.sdk。当有人发送电子邮件时,我正在向其中添加跟踪像素。
但是当有人回复我们的邮件时。然后我们回复它-跟踪像素存在于体内-在修剪部分-我们如何摆脱该跟踪像素。
例如
A和B正在对话,而A正在使用我的插件-
``------------->。乙
(将附加一个跟踪像素TP1)
现在B将回复A
-B B B B B

当A发送回信给B
B B B B B
(将附加一个新的跟踪像素TP2)
但现在我们要发送两个跟踪像素-
1. TP2
2. TP1-因为它存在于答复正文中-剪裁后的内容内部。
因此,问题在于我们如何才能从答复正文中删除旧内容。
通过使用收件箱sdk,我只能在以其他方式打开修剪的内容的情况下抓取主体-我们无法在修剪的内容的男孩里面抓取内容。

如果问题不清楚,我可以发表评论,我将尝试扩展更多。

最佳答案

Gmail使用name="eut"将修剪后的内容保存在隐藏的输入字段中。
您可以做的是获取消息正文,找到实际上封装了回复消息的最近的祖父母表。然后找到此输入元素,在其上循环并删除所有跟踪像素。之后,只需插入新的跟踪像素,一切就好了。

// 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/

10-12 13:47