小谈html mailto sheme

引入:

上sprint我们项目组用到了mailto sheme,在href中,我也有兴趣稍花了点时间研究了下。


实践

如果页面中的链接用到了mailto sheme如下:

114649652.png


则当在页面中点击如下超级链接时:

114736564.png


它自动会打开OutLook 并且吧所有的我们href中内容都自动填入进去:

114840606.png


现在我们来研究这个mailto theme的机理:


很显然,根据我的学习习惯,会先去找RFC 中的说明,我们在如下页面找到了:

http://tools.ietf.org/html/rfc6068


快速阅读了一下,发现这段话讲解了http shememailtosheme在页面上被点击后发生的事情:

114938294.png


可以看出:对于解析的url包含http sheme,则会引起客户端软件(浏览器)和交互服务器的立即交互,也就是说,当一个hrefhttp://xxxx,时候,会立马找到浏览器并且发送请求url,于是这就是超级链接的本质。而对于mailto scheme,则会让客户端软件创建一个消息,吧mailto后面的url和参数依次填入,但是不会立马发送,而是等用户编辑完再发送。



而根据我的已有知识,当页面上点击http sheme时候,它启动的浏览器是你当前页面所在的浏览器,否则是从注册表中找到默认的浏览器。

按照类比的思路,我们可以断定,这个mailto sheme所触发的邮件客户端应该也是从注册表中找的


而RFC的制定,所有的主流浏览器都必须遵守这些RFC 规范,所以所有浏览器中实验,其结果都是一样的。


我们看下注册表在HKEY_CLASSES_ROOT下:

115022445.png


这个command的默认值是:

115112192.png


所以,这里可以看出,我们的mailto标签会默认激活OUTLOOK.EXE,因为我们注册表中默认的是打开OUTLOOK.EXE


所以我们只要在自己的客户端机器上安装了其他电子邮件应用,比如outlook express或者Foxmail,并且在这里吧这个键值指向相应的可执行文件,就可以让mailto标签触发打开相应的邮件编辑器了我昨晚在家实验了下,完全正确



总结;

(1)mailto sheme是可以触发用户打开电子邮件客户端的sheme.

(2)具体打开哪个客户端,由注册表中的设定为准,你可以配置这个设定来让mailto触发打开不同的邮件客户端,如果你设置了一个错误的客户端执行文件路径或者乱填,那么这个mailto 被点击后什么都不触发。

你可能感兴趣的:(register,mailto)