0

构建一个 Gmail 插件,我使用下一个代码来修改撰写视图上的正文内容:

var response = CardService.newUpdateDraftActionResponseBuilder()
    .setUpdateDraftBodyAction(CardService.newUpdateDraftBodyAction()
        .addUpdateContent(HTML, CardService.ContentType.MUTABLE_HTML)
        .setUpdateType(CardService.UpdateDraftBodyType.IN_PLACE_INSERT))
    .build();

如果 HTML var 包含<img src="">标签,例如:

var HTML = "<img src='https://www.img.com?id=422905de&linkGuid=&url=&type=email&referrerUrl=' height='1' width='1'>"

一旦它附加到撰写视图看起来像这样

<img src="https://ci5.googleusercontent.com/proxy/C2s_vqWMJJkSPDMkWknfh1oop1hokrhvIjiMoDP7-pTeSyPe38_EgAQSpjob9cV8i6kKT6NUyQVvOErKIsZx_Ey8kN0r9xfx1n842DrOlCgjO0PTT_oQuynCkB_M53iYdtdGtN3ArXi3p3elizleGa14lQNx6KAiJ8L7xPjX4kp8Dhe1zgdB2eCNEx5V20eZbBSm-3ETldi03ibEQM8b6XUUGHAq3jzSkeqWxyjQLDpTDIen7WbfKw3ti-vKZrql0=s0-d-e1-ft#https://www.img.com?id=422905de&linkGuid=&url=&type=email&referrerUrl=" height="1" width="1">

如果我使用 CardService.ContentType.TEXT,我可以看到 URL 按预期附加(但在文本中)

<img src='https://www.img.com?id=422905de&linkGuid=&url=&type=email&referrerUrl=' height='1' width='1'>

所以看起来,在 contentType 中使用 MUTABLE_HTML 或 IMMUTABLE_HTML 会在 URL 执行后修改它。

有没有办法避免这种行为?

4

1 回答 1

0

您是否尝试过使用客户端添加 src 属性?

例子:

var HTML = "<img id='image-id'><script>document.getElementById('image-id').setAttribute('src','https://www.img.com?id=422905de&linkGuid=&url=&type=email&referrerUrl=')</script>"

更新:

此处的第二个示例显示了如何在草稿作曲家中插入图像。我相信唯一的区别是他们使用“/>”结束斜杠和括号作为标签。

更新 2:

正如@Pataquer 在评论中指出的那样,这正在按预期工作,因为谷歌对图像和其他内容进行了清理。需要注意的一件事是,HTML 的可变性与插入的 HTML 内容是否意味着运行插件的用户可以编辑有关。

于 2021-02-04T12:57:46.833 回答