有些网站所使用的空间并不一定会支援JSP、CGI、PHP或是ASP来架设留言版或是讨论区,若是想让使用者有个管道可以沟通的话要怎么办呢?
大多数的网站都会有一个叫连络我们的连结,点下去后会启动客户端的寄信软体,虽然不是每个人都使用像Outlook这一类的软体来收寄信,但起码Windows使用者的电脑内都会有套Outlook,所以这个连络我们的连结有90%以上的机率是会启动Outlook。其中新邮件中的收件者、主旨、副本甚至连内文都会自动填写好让使用者可以很轻易的就能把意见寄出去。
这样的效果是怎么做到的呢?其实只要输入像下面的Code就能做到了。
就只要把<A>标签的href设成mailto:收件人信箱,酱就可以了。subject是主旨、body是内文、cc是副本、bcc是密件副本。
有些规模较小一点的购物网站也会使用类似的方法来让使用者下订单,但若是用上面的方法好像有点阳春的感觉,所以要教各位用另一种让使用者先把该填的填完后,再把信寄出。
假设我要使用者填写他的匿称、信箱及所购买的产品名称、数量、地址、电话及备注,并有寄信及重写的按钮。先让我们来看下面的Code:
以上的排版还是很阳春,不过跟一开始的连结比好很多了。教学用就将就一点啰,重点是接下来的JavaScript。
寄信的按钮在Click后会触发sendMail()这个方法,并把form这物件当做参数用。然后把目前网址的href设成mailto.....,酱是不是好多了呢?但是在按下寄信时,会发现新邮件中内文的部份却没有换行。
怎么会这样咧?其实这部份也是另一个重点,如何在内文部份能有换行的效果来。来看改过后的Code:
其中变数re是一种正规表示法,这部份不熟的就先直接用吧,再来我把内文中换行的字串\r\n全部替换程%0A,这是Unicode编码中表示换行,若不要用%0A的话,也可以用escape("\n")来替换都能达到换行效果。
上面的范例中并没有对匿称有没有填写及信箱符不符合规则来做验证,且若真的是购物网站要用的话,真的不建议用这种直接寄信的方法,一来根本没任何安全性可言;二来不能满足各种必须要有的功能,这顶多当成意见反应用吧。
范例浏览:
http://abgne.myweb.hinet...0004.html以上内容于2005/09/04发表在小弟的Blog里
http://blog.xuite.net/abgne/diary1/3884547