现代浏览器是否支持HTML中的base64编码的JS或CSS块,就像它们对图像一样?

时间:2017-01-10 17:13:10

标签: javascript html css email base64

我正在编写一个HTML邮件查看器,它在输入时获取MIME源(附加了HTML邮件正文和相关对象)。我想base64编码所有嵌入的对象(如消息中出现的图像)。但是,我不确定它是否适用于其他类型的嵌入式资源,如CSS或JS文件。

虽然电子邮件将CSS或JS作为附加到邮件的单独文件(而不是直接包含在HTML中)并不常见,但这仍然是可能的,我希望我的邮件查看器能够适应这种情况。

现在,我打算在HTML正文中的标记属性中找到类似cid:some-content-id的内容,并将所有出现的内容替换为相应嵌入对象的base64编码主体(在标题中具有相同的content-id)相应的对象)。在这种方法中,我甚至不打扰我现在处理的是什么类型的资源(无论是图像还是其他什么,我只是运行正则表达式模式匹配)。但如果事实证明这种方法不适用于任何图像,我需要找到另一种解决方案。

1 个答案:

答案 0 :(得分:3)

是的,浏览器支持DATA URLs(可以是64位)代替实际文件。



<link rel="stylesheet" href="data:text/css;charset=utf-8;base64,Ym9keXtiYWNrZ3JvdW5kOmJsYWNrO2NvbG9yOndoaXRlO30="></link>

<script src="data:application/javascript;charset=utf-8;base64,d2luZG93LmFsZXJ0KCJ0aGlzIGlzIGV4ZWN1dGVkIGZybSBiYXNlNjQiKTs="></script>

<p>This text is styled white from the data-uri loaded css</p>
&#13;
&#13;
&#13;

也就是说,电子邮件通常不允许使用Javascript,只能将CSS复制到<style>标签中,因此在您的情况下这不是必需的。