有些網站所使用的空間並不一定會支援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