现代浏览器是否支持 base64 编码的 JS 或 HTML 中的 CSS 块,就像它们对图像所做的那样?
Do modern browsers support base64 encoded JS or CSS chunks in HTML like they do for images?
我正在编写一个 HTML 邮件查看器,它在输入时获取 MIME 源(附有 HTML 邮件 body 和相关的 object)。我想对所有嵌入的 object 进行 base64 编码(比如消息中出现的图像)。但是,我不确定它是否适用于其他类型的嵌入式资源,例如 CSS 或 JS 文件。
虽然电子邮件将 CSS 或 JS 作为单独的文件附加到邮件中并不常见(而不是直接包含在 HTML 中),但这仍然是可能的,我想要我的邮件观众要为这种情况做好准备。
目前,我计划在 HTML body 的标签属性中找到类似 cid:some-content-id 的内容,并用 base64 编码的主体替换所有出现的内容相应的嵌入 object(在相应 object 的 headers 中具有相同的 content-id)。在这种方法中,我什至不关心我现在正在处理什么样的资源(无论是图像还是其他什么,我只是 运行 正则表达式模式匹配)。但是如果发现这个方法只对图像不起作用,我需要找到另一个解决方案。
是的,浏览器支持 DATA URLs(可以是 base 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>
也就是说,Javascript 通常不允许出现在电子邮件中,CSS 可以简单地复制到 <style>
标签中,因此在您的情况下没有必要这样做。
我正在编写一个 HTML 邮件查看器,它在输入时获取 MIME 源(附有 HTML 邮件 body 和相关的 object)。我想对所有嵌入的 object 进行 base64 编码(比如消息中出现的图像)。但是,我不确定它是否适用于其他类型的嵌入式资源,例如 CSS 或 JS 文件。
虽然电子邮件将 CSS 或 JS 作为单独的文件附加到邮件中并不常见(而不是直接包含在 HTML 中),但这仍然是可能的,我想要我的邮件观众要为这种情况做好准备。
目前,我计划在 HTML body 的标签属性中找到类似 cid:some-content-id 的内容,并用 base64 编码的主体替换所有出现的内容相应的嵌入 object(在相应 object 的 headers 中具有相同的 content-id)。在这种方法中,我什至不关心我现在正在处理什么样的资源(无论是图像还是其他什么,我只是 运行 正则表达式模式匹配)。但是如果发现这个方法只对图像不起作用,我需要找到另一个解决方案。
是的,浏览器支持 DATA URLs(可以是 base 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>
也就是说,Javascript 通常不允许出现在电子邮件中,CSS 可以简单地复制到 <style>
标签中,因此在您的情况下没有必要这样做。