我想要一个带有javascript的html文件。然后我想在这个文件中有一些图像。我想把这个html文件发送给我的朋友(每封电子邮件)。我希望他们看到我的html文件与图像,但我不想发送所有图像的所有文件。发送它们只是一个文件会很好。
我也不想在网络服务器上安装图像。
我也不想向他们发送包含所有文件的存档(因为他们需要打开此存档)。
我想要做多少或者有可能做我想做的事情?
ADDED
我不希望我的朋友在邮件客户端中看到html文件。我想发送一个文件作为附件。因此,他们可以保存它,然后使用浏览器打开。
答案 0 :(得分:5)
是的,有可能:
# HTML
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA................." />
# CSS
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA.................)
文件源使用Base64算法进行编码,该算法可以轻松地将二进制数据表示为普通文本。
在维基百科上了解更多信息:Data URI scheme。
答案 1 :(得分:3)
根据邮件客户端是否支持它,您理论上可以使用data URI scheme,如下所示:
<img src="data:image/png;base64,
iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABGdBTUEAALGP
C/xhBQAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9YGARc5KB0XV+IA
AAAddEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q72QlbgAAAF1J
REFUGNO9zL0NglAAxPEfdLTs4BZM4DIO4C7OwQg2JoQ9LE1exdlYvBBeZ7jq
ch9//q1uH4TLzw4d6+ErXMMcXuHWxId3KOETnnXXV6MJpcq2MLaI97CER3N0
vr4MkhoXe0rZigAAAABJRU5ErkJggg==" alt="Red dot" />
同样,支持依赖于邮件客户端。有些人可能根本不支持它。有些可能在X个字节后截断。等等。据我所知,他们并不多。此外,我没有看到另一种在HTML中内联图像的方法。在广泛支持之前,您最好的选择是将图像作为附件发送。
更新:好吧,大多数现代网络浏览器都支持它。前面提到的维基百科链接甚至详细提到了它们。
以下网络浏览器目前支持数据URI:
- 基于Gecko的,例如Firefox,XeroBank,Camino,Fennec和K-Meleon
- Konqueror ,通过KDE的KIO奴隶输入/输出系统
- Opera (包括Nintendo DSi或Wii等设备)
- 基于WebKit的,例如Safari(包括在iPhone上),Android的浏览器,Epiphany和Midori(WebKit是Konqueror的KHTML引擎的衍生产品,但是Mac OS X不共享KIO架构所以实现是不同的),以及基于Webkit / Chromium,如Chrome和Iron
- Internet Explorer 8 :出于安全原因,Microsoft限制其对某些“不可导航”内容的支持,包括担心嵌入在数据URI中的JavaScript可能无法通过脚本过滤器解释由基于Web的电子邮件客户端使用。 数据URI必须小于32 KiB。
请注意,IE8在32KB之后截断字符串。因此,只要图像不那么大,就可以为IE8用户使用数据URI方案。 IE7及更低版本不支持它。
答案 2 :(得分:0)
我不知道有什么方法可以完成你所追求的目标,100%确定它会起作用。
有没有办法放弃图片?也许是ascii代表? (像这样http://www.text-image.com/)
存档将是我所知道的唯一“单个文件”选项。
答案 3 :(得分:0)
您无法从邮件客户端执行javascript。您可以内联图像,但是您需要一个库,因为手动执行它并非易事。
你应该给他们发一个链接。
答案 4 :(得分:0)
为什么不直接将图像与相对路径链接,并将它们捆绑在包含html文件的文件夹中,然后将其存档并压缩(zip或tarball,具体取决于偏好)?
答案 5 :(得分:0)
如果您只想发送一个文件,只需使用您喜欢的压缩程序将其压缩即可。
答案 6 :(得分:-4)
在任何情况下,您都不应发送正文为HTML的电子邮件。使用图像作为MIME附件发送纯文本邮件,或者更好的是,将图像放在网站上(我听说Flickr非常好;-)并发送它们的URL。
我要再说一遍,因为需要更经常地说:电子邮件必须是纯文本。