针对有网友说看不见文章内容, 现提示如下: 点击每一个标题行任一地方都会展开和隐藏此文章内容(不要点击标题). 目前展开隐藏功能只支持IE浏览器,虽然可以改成支持FF浏览器,不过现在一直没时间去弄,等有时间再修改了。 |
blog名称:乱闪Blog 日志总数:267 评论数量:1618 留言数量:-26 访问次数:2673630 建立时间:2005年1月1日 |
|

| |
mailto: URL 工具
|
原文出处:http://webreference.com/js/column70/index.html
纲要
JavaScript中,mailto: 这个 URL 功能很强,然而却很少用到。原因之一是开发者只熟悉它的基本功能,而不了解它的多属性支持。mailto: URL 不仅支持邮件地址,还支持 cc、bcc、subject 和 body 域。我们可以通过编写脚本组装一个完整的邮件功能,这看起来应该比那些采用提示用户发送他们的反馈、错误报告、抱怨和称赞等等方式的站点更显温柔、更受欢迎。
URL的语法
本文我们讨论 mailto: URL 的几个部分。首先我们解释 mailto: URL 支持的多个属性 (to、cc、bcc、 subject 和 body)。我们准备了一个简单的 mailto: URL 工具帮助我们生成、查看和测试 mailto: URL。最后,我们演示一个组装 mailto: URL 的脚本。 阅读本文我们将学会: 如何mailto: URL的语法 如何使用 mailto: URL 工具 如何编写 mailto: URL 工具的 HTML 部分 如何编写 mailto: URL 工具的脚本部分 (I) 如何编写 mailto: URL 工具的脚本部分 (II) 如何编写生成 mailto: URL 的脚本 我们以HTML格式提供mailto: URL工具的清单以及 mailto: URL 生成脚本。 mailto: URL 允许你提供信件的收件人地址、主题、抄送或加密抄送和信件的主体以格式化信件。最简单的、也是最常用的 mailto: URL 是指定信件的发送地址。 嵌入在 HTML 标记中时,就像下面一样: < A HREF="mailto:gwok@yeah.net">发送信件< /A> 如果你希望指定信件的其他属性,可以以名/值 (名=值) 对的方式将它们添加到 URL 中。每个属性名后紧随一个等号和一个值。用问号(?) 将“名/值”对和电子邮件地址分开。名/值对之间以 & 分隔。 mailto:xxx@xxxx.net?cc=aegis@yeah.net&bcc=tony@yahoo.com&subject=Your_Tips 具体HTML代码是: < A HREF="mailto:gwok@yeah.net?cc=aegis@yeah.net&bcc=tony@yahoo. com&subject=Your_Tips">欢迎提供反馈< /A> 欢迎提供反馈 在 Mac 系统上, IE 不能分辨 bcc 参数并且会将其添加到 cc 中。例如,当你点击以上连接时,新邮件窗口中的 cc 地址将显示为 aegis@yeah.net&bcc。请避免在这一系统下的浏览器中使用 bcc 参数。另外,Lotus Notes只支持 mailto: URL 中的地址域,指定其他属性会引起混乱。
正文
邮件工具
點擊下面[运行代码]按扭運行以下代码,如果看不到月厉請刷新一次点击[运行代码]打開的網頁:<STYLE TYPE="text/css">
<!--
FORM.tb {display:inline;}
.twidth{width:100%}
.include{ font-size: 75%; font-family: verdana, arial, helvetica;}
.includebig{font-family: verdana, arial, helvetica;}
.includebig A:link { color: blue; }
.includebig A:visited { color: purple; }
.include A:link { color: blue; }
.include A:visited { color: purple; }
.submitter { font-size: 75%; font-family: verdana, arial, helvetica; }
.codehighlight {background:#eee}
.WRy1{background:#fc0}
.WRy2{background:#fff3ac}
pre.code {color: #660099; margin-left:5%}
address {text-align: right}
body {background:#FFFFFF; margin-left: 5%; margin-right: 5%}
.WRBannerCenter {margin-left:-5%; margin-right:-5%; margin-top:8px; margin-bottom:8px; text-align:center}
-->
</STYLE>
<SCRIPT LANGUAGE="JavaScript">
<!--
// CREATE A MAILTO URL OR MAILTO ANCHOR TAG
function createMailto(sourceForm, targetField, urlType) {
var to = sourceForm.to.value;
var cc = sourceForm.cc.value;
var bcc = sourceForm.bcc.value;
var subject = sourceForm.subject.value;
var body = sourceForm.body.value;
var linkText= sourceForm.linkText.value;
if (linkText == "") {
linkText = "链接文本";
}
var urltext = "";
// IF THE VALUE IS SET, INCLUDE IT IN THE URL
if (to != "") {
urltext += to;
}
else {
alert("Sorry, you must fill out the 'To' field");
sourceForm.to.focus();
return(1);
}
if (cc != "") {
urltext = addDelimiter(urltext);
urltext += "CC=" + cc;
}
if (bcc != "") {
urltext = addDelimiter(urltext);
urltext += "BCC=" + bcc;
}
if (subject != "") {
urltext = addDelimiter(urltext);
urltext += "Subject=" + escape(subject);
}
if (body != "") {
urltext = addDelimiter(urltext);
urltext += "Body=" + escape(body);
}
if (urlType == "url") {
urltext = "mailto:" + urltext;
}
else {
urltext = "<A HREF=\"mailto:" + urltext + "\">" + linkText + "</A>";
}
// PUT THE NEW URL IN THE FORM FIELD
targetField.value = urltext;
// GIVE THE FIELD FOCUS AND HIGHLIGHT THE TEXT --
// TO FACILITATE EASY COPYING AND PASTING OF THE NEW URL
targetField.focus();
targetField.select();
return(1);
}
// ADD THE "?" OR "&" NAME/VALUE SEPARATOR CHARACTER
function addDelimiter(inputString) {
var inString = inputString;
// IF '?' NOT FOUND, THEN THIS IS THE FIRST NAME/VALUE PAIR
if (inString.indexOf("?") == -1) {
inString += "?";
}
// ELSE IT'S A SUBSEQUENT NAME/VALUE PAIR, SO ADD THE '&' CHARACTER
else {
inString += "&";
}
return inString;
}
// TEST THE MAILTO URL -- ASSIGN THE URL TO THE DOCUMENT LOCATION
// TO POP UP THE MESSAGE WINDOW
function testMailto(loc) {
var doc = loc;
// IF MAILTO URL IS EMBEDDED IN AN ANCHOR TAG
if (doc.indexOf("HREF=") != -1) {
// EXTRACT THE MAILTO URL FROM THE ANCHOR TAG
var doc = doc.substring(doc.indexOf("HREF=")+6, doc.indexOf(">")-1);
}
// ASSIGN THE MAILTO URL TO THE DOCUMENT (THIS WILL POP UP A MAIL WINDOW)
window.location = doc;
}
function viewMailto(linkText) {
alert("URL:\n\n" + linkText);
}
// -->
</SCRIPT>
</HEAD>
</HEAD>
<BODY BGCOLOR="#ffffff">
<table cellpadding=0 cellspacing=0 border=0 class=twidth><tr>
<td valign=top><style type="text/css">
<!--
#WDinclude {font-size:75%; font-family:verdana, arial, helvetica}
.WDi {font-family:verdana, arial, helvetica}
#WDinclude A:link {color: blue}
.WDi A:link {color:blue}
#WDinclude A:visited {color: purple}
.WDi A:visited {color: purple}
.WRy1{background:#fc0} .WRy2{background:#fff3ac}
-->
</style>
<FORM NAME="mailtoForm">
<CENTER>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=2 BGCOLOR="#ffff99">
<TR ALIGN="LEFT" VALIGN="TOP">
<TD COLSPAN="4"> <CENTER>
<FONT COLOR="#408080" SIZE=+1 face="Arial, Helvetica, sans-serif"><strong>输入邮件信息
</strong> </FONT>
</CENTER></TD>
</TR>
<TR ALIGN="LEFT" VALIGN="TOP">
<TD><FONT FACE="Arial, Helvetica" SIZE=-1><B>收件人:</B></TD>
<TD><INPUT TYPE="text" NAME="to" SIZE=30 STYLE="background-color:'#ffcc66'"></TD>
<TD><FONT FACE="Arial, Helvetica" SIZE=-1><B>抄送:</B></TD>
<TD><INPUT TYPE="text" NAME="cc" SIZE=30 STYLE="background-color:'#ffcc66'"></TD>
</TR>
<TR ALIGN="LEFT" VALIGN="TOP">
<TD ALIGN="LEFT"><FONT FACE="Arial, Helvetica" SIZE=-1><B>密件:</B></TD>
<TD><INPUT TYPE="text" NAME="bcc" SIZE=30 STYLE="background-color:'#ffcc66'"></TD>
<TD><FONT FACE="Arial, Helvetica" SIZE=-1><B>邮件标题:</B></TD>
<TD><INPUT TYPE="text" NAME="subject" SIZE=30 STYLE="background-color:'#ffcc66'"></TD>
</TR>
<TR ALIGN="LEFT" VALIGN="TOP">
<TD ALIGN="LEFT"><FONT FACE="Arial, Helvetica" SIZE=-1><B>邮件内容:</B></TD>
<TD COLSPAN="4"><TEXTAREA NAME="body" WRAP="VIRTUAL" COLS=50 ROWS=3 STYLE="background-color:'#ffcc66'"></TEXTAREA></TD>
</TR>
<TR ALIGN="LEFT" VALIGN="TOP">
<TD ALIGN="LEFT"><FONT FACE="Arial, Helvetica" SIZE=-1><B>链接文本:</B></TD>
<TD COLSPAN="3"><INPUT TYPE="text" NAME="linkText" SIZE=73 STYLE="background-color:'#ffcc66'"></TD>
</TR>
<TR>
<TD COLSPAN="4"> <CENTER>
<INPUT TYPE="Reset" NAME="Clear" Value="Clear">
<INPUT TYPE="button" NAME="CreateURL" VALUE="Create URL" onClick="createMailto(document.mailtoForm, document.mailtoForm.text, 'url')">
<INPUT TYPE="button" NAME="CreateAnchor" VALUE="Create Link" onClick="createMailto(document.mailtoForm, document.mailtoForm.text, 'anchor')">
</CENTER></TD>
</TR>
<TR>
<TD COLSPAN="4"> <CENTER>
<FONT COLOR="#408080" SIZE=+1><B>显示你的mailto: URL</B></FONT>
</CENTER></TD>
</TR>
<TR>
<TD ALIGN="LEFT"><FONT FACE="Arial, Helvetica" SIZE=-1><B>mailto URL:</B></TD>
<TD COLSPAN="3"><INPUT TYPE="text" NAME="text" SIZE=73 STYLE="background-color:'#ffcc66'"></TD>
</TR>
<TR>
<TD COLSPAN="4"> <CENTER>
<INPUT TYPE="button" NAME="Test" VALUE="Test URL" onClick="testMailto(document.mailtoForm.text.value)">
<INPUT TYPE="button" NAME="View" VALUE="View URL" onClick="viewMailto(document.mailtoForm.text.value)">
</CENTER></TD>
</TR>
</TABLE>
</CENTER>
</FORM>
</td>
</tr>
</table>
[Ctrl+A 全选 Ctrl+C 复制,如不能正常显示请刷新一下]
使用 mailto: URL 工具 mailto: URL 工具给你提供了创建 mailto: URL 的一个简单方法。这个工具基于我们简化并扩展了的一个 Netscape 脚本。试一试如何使用它。填写地址、cc、bcc、subject 和 body 域。按钮 Create URL 生成一个 mailto: URL。按钮 Create Link 生成一个带有链接文字的完整链接元素,链接文字可以在相应的域里指定。按钮 Clear 清除所有输入域。mailto: 域显示生成的 URL 或链接。按钮 View URL 弹出一个带有 URL 的警告窗口。按钮 Test URL 调用默认的邮件程序,并弹出一个和填写的输入域相适应的新邮件窗口。最后,从mailto:域复制生成的URL并将其粘贴到你的页面中。
编写 mailto: URL 工具的用户界面
mailto: URL 工具包含两部分。HTML 部分定义了表单自身。表单包括基本输入元素如文本框、文本区和按钮。这些输入的的重要属性是:NAME。所有对这些域值的引用都是通过它们的 NAME 属性。如果表单的 name 是 mailtoForm,而输入域的 name 是 NAME="subject",那么域值就是:
mailtoForm.subject.value 你也可以通过对 mailtoForm.subject.value 赋值来设置这个域。按钮被赋予了要在本文后面讨论的以下事件驱动程序: createMailto()、testMailto() 和 viewMailto()。注意按钮 TYPE="Reset",它清除表单中的所有域,没有被显式指定事件驱动程序。VALUE 域决定按钮上显示的文字。SIZE 属性以字符为单位指定了域的宽度。COLSPAN 属性指定了表格中的一列占据多少个单元格 (如果未指定,默认值为1)。以下是 HTML 代码,它的大部分都是比较简单的:
< BODY> < FONT FACE="Arial, Helvetica" SIZE=-1> < CENTER>< H1>Create a mailto: URL< /H1>< /CENTER> < FORM NAME="mailtoForm"> < CENTER> < TABLE BORDER=0 CELLSPACING=0 CELLPADDING=2 BGCOLOR="#ffff99" > < TR ALIGN="LEFT" VALIGN="TOP"> < TD COLSPAN="4"> < CENTER>< B>< FONT COLOR="#408080" SIZE=+1>在这里输入邮件细节< /FONT>< /B>< /CENTER>< /TD> < /TR> < TR ALIGN="LEFT" VALIGN="TOP"> < TD>< FONT FACE="Arial, Helvetica" SIZE=-1>< B>To:< /B>< /TD> < TD>< INPUT TYPE="text" NAME="to" SIZE=30 STYLE="background-color:'#ffcc66'">< /TD> < TD>< FONT FACE="Arial, Helvetica" SIZE=-1>< B>Cc:< /B>< /TD> < TD>< INPUT TYPE="text" NAME="cc" SIZE=30 STYLE="background-color:'#ffcc66'">< /TD> < /TR> < TR ALIGN="LEFT" VALIGN="TOP"> < TD ALIGN="LEFT">< FONT FACE="Arial, Helvetica" SIZE=-1>< B>Bcc:< /B>< /TD> < TD>< INPUT TYPE="text" NAME="bcc" SIZE=30 STYLE="background-color:'#ffcc66'">< /TD> < TD>< FONT FACE="Arial, Helvetica" SIZE=-1>< B>Subject:< /B>< /TD> < TD>< INPUT TYPE="text" NAME="subject" SIZE=30 STYLE="background-color:'#ffcc66'">< /TD> < /TR> < TR ALIGN="LEFT" VALIGN="TOP"> < TD ALIGN="LEFT">< FONT FACE="Arial, Helvetica" SIZE=-1>< B>Body:< /B>< /TD> < TD COLSPAN="4">< TEXTAREA NAME="body" WRAP="VIRTUAL" COLS=63 ROWS=3 STYLE="background-color:'#ffcc66'">< /TEXTAREA>< /TD> < /TR> < TR ALIGN="LEFT" VALIGN="TOP"> < TD ALIGN="LEFT">< FONT FACE="Arial, Helvetica" SIZE=-1>< B>Link Text:< /B>< /TD> < TD COLSPAN="3">< INPUT TYPE="text" NAME="linkText" SIZE=73 STYLE="background-color:'#ffcc66'">< /TD> < /TR> < TR> < TD COLSPAN="4"> < CENTER> < INPUT TYPE="Reset" NAME="Clear" Value="Clear"> < INPUT TYPE="button" NAME="CreateURL" VALUE="Create URL" onClick="createMailto(document.mailtoForm, document.mailtoForm.text, 'url')"> < INPUT TYPE="button" NAME="CreateAnchor" VALUE="Create Link" onClick="createMailto(document.mailtoForm, document.mailtoForm.text, 'anchor')"> < /CENTER> < /TD> < /TR> < TR> < TD COLSPAN="4"> < CENTER>< FONT COLOR="#408080" SIZE=+1>< B>这里是你的 mailto: URL< /B>< /FONT>< /CENTER> < /TD> < /TR> < TR> < TD ALIGN="LEFT">< FONT FACE="Arial, Helvetica" SIZE=-1>< B>mailto URL:< /B>< /TD> < TD COLSPAN="3">< INPUT TYPE="text" NAME="text" SIZE=73 STYLE="background-color:'#ffcc66'">< /TD> < /TR> < TR> < TD COLSPAN="4"> < CENTER> < INPUT TYPE="button" NAME="Test" VALUE="Test URL" onClick="testMailto(document.mailtoForm.text.value)"> < INPUT TYPE="button" NAME="View" VALUE="View URL" onClick="viewMailto(document.mailtoForm.text.value)"> < /CENTER> < /TD> < /TR> < /TABLE> < /CENTER> < /FORM> < /FONT> < /BODY>
编写 mailto: URL 工具的脚本 (I)
mailto: 工具的脚本部分包括四个函数: createMailto()、testMailto()、viewMailto() 和 addDelimiter()。我们先看短的,函数 viewMailto() 使用 alert 来显示 URL:
function viewMailto(mailtoText) {alert("URL:nn" + mailtoText);} 函数 addDelimiter() 在表示地址的名/值对前添加问号 (?),在其它名/值对之间添加 &。我们通过在 URL 文本中查找问号来确定添加了哪一个分隔符。如果已经有问号了,我们添加 &。否则,我们就添加问号:
// 添加 "?" 或 "&" 做为名/值对的分隔符function addDelimiter(inputString) {var inString = inputString;
// 如果找不到 '?',那么这是第一个名/值对if (inString.indexOf("?") == -1) {inString += "?";}// 否则这是随后的名/值对,添加字符 "&"else {inString += "&";}return inString;} 函数 testMailto() 模拟点击 mailto: URL 时的效果。有一点复杂的是当传递给函数一个链接而不是 URL 时,从链接中抽取 URL。我们通过将它赋值给 window.location 来测试 URL:
// 测试 mailto: URL — 将 URL 赋值给文档的 location// 以弹出邮件窗口function testMailto(loc) {var doc = loc;
// 如果 mailto: URL 嵌入在 anchor 标记中if (doc.indexOf("HREF=") != -1) {// 从 anchor 标记中抽取 mailto: URLvar doc = doc.substring(doc.indexOf("HREF=")+6, doc.indexOf(">")-1);}
// 将 mailto: URL 赋值给文档 (弹出一个邮件窗口)window.location = doc;}
编写 mailto: URL 工具的脚本 (II)
mailto: URL 工具的主函数是 createMailto()。这个函数接受三个参数:sourceForm (表单名)、targetField (mailto: URL 的目标域名称) 和 urlType (是 url 还是 anchor)。函数 createMailto() 将用户填写的表单域组装成 mailto: URL。我们首先找到用户的输入值:
var to = sourceForm.to.value;var cc = sourceForm.cc.value;var bcc = sourceForm.bcc.value;var subject = sourceForm.subject.value;var body = sourceForm.body.value;var linkText= sourceForm.linkText.value; 变量 linkText 表示将要在链接位置上显示的文本。这个域是可选的,我们默认将它设置为空:
if (linkText == "") {linkText = "Link Text";} 函数循环地查看每一个域,将它们一个一个地添加到 URL,并添加适当地分隔符:
var urltext = "";
// 如果此值已设置,将其包含到 URL 中if (to != "") {urltext += to;}else {alert("Sorry, you must fill out the 'To' field");sourceForm.to.focus();return(1);}if (cc != "") {urltext = addDelimiter(urltext);urltext += "CC=" + cc;}if (bcc != "") {urltext = addDelimiter(urltext);urltext += "BCC=" + bcc;}if (subject != "") {urltext = addDelimiter(urltext);urltext += "Subject=" + escape(subject);}if (body != "") {urltext = addDelimiter(urltext);urltext += "Body=" + escape(body);}if (urlType == "url") {urltext = "mailto:" + urltext;}else {urltext = "< A HREF="mailto:" + urltext + "">" + linkText + "< /A>";} 注意我们用escape来处理参数 subject 和 body。这样允许在信件的主题和内容中将 & 和问号 (?) 作为合法字符使用。剩下的就是在 mailto: 域中书写 URL 文本,并将焦点和选择设置到它上面:
// 把新的 URL 放到表单域中targetField.value = urltext;
// 将焦点设置到此域并高亮显示其文本—这样可以方便地剪贴新 URLtargetField.focus();targetField.select();return(1);
编写基于脚本的工具
这里我们准备的第二个 mailto: URL 工具仅仅基于一个脚本。它设置信件的细节然后弹出一个填写了细节的信件。以下按钮时调用函数 popupMessage(): 點擊下面[运行代码]按扭運行以下代码,如果看不到月厉請刷新一次点击[运行代码]打開的網頁:<SCRIPT language=JavaScript>
<!--
// POP UP A PREFORMATTED EMAIL MESSAGE WINDOW
function popupMessage() {
// SET MESSAGE VALUES
var to = "tomer@netscent.com";
var cc = "yehuda@internet.com";
var bcc = "tomer@internet.com";
var subject = "Comments about your tips";
var body =
"Tomer and Yehuda,\n\n\tI'd like to suggest the following improvements to your tips: \n"
+
"\nFirst, ..." +
"\nAlso, sometimes...." +
"\n\nSincerely,\n\n" + "Your faithful reader...";
// BUILD MAIL MESSAGE COMPONENTS
var doc = "mailto:" + to +
"?cc=" + cc +
"&bcc=" + bcc +
"&subject=" + escape(subject) +
"&body=" + escape(body);
// POP UP EMAIL MESSAGE WINDOW
window.location = doc;
}
// -->
</SCRIPT>
<P>
<FORM><INPUT onclick=popupMessage() type=button value="Test mailto: URL" name=Test> </FORM></P>
[Ctrl+A 全选 Ctrl+C 复制,如不能正常显示请刷新一下]
以上的按钮是这样创建的:
< FORM> < INPUT TYPE="button" NAME="Test" Value="Test mailto: URL" onClick="popupMessage()"> < /FORM> 函数 popupMessage() 的定义为:
function popupMessage() {// 设置信件var to = "gwok@yeah.net";
var cc = "dehaili@netease.com";var bcc = "gwok@netease.com";var subject = "Comments about your tips";var body = "gwok and dhl," +"nntI'd like to suggest the following improvements to your tips: n" + "nFirst, ..." + "nAlso, sometimes...." + "nnSincerely,nn" + "Your faithful reader...";
// 创建邮件 URLvar doc = "mailto:" + to + "?cc=" + cc + "&bcc=" + bcc + "&subject=" + escape(subject) + "&body=" + escape(body);
// 弹出信件window.location = doc; } 注意在组装 subject 和 body 域时使用的函数 escape()。它将任何非字母、数字字符转换为 ASCII 值 (以十六进制符号表示)。这样,在 body 和 subject 中的任何 & 和问号 (?) 就不会在浏览器解释 mailto: URL 时被扰乱。问号 (?) 和 & 是 mailto: URL 中的分隔符,在信件中直接使用它们肯定会扰乱对 mailto: URL 的解释。弹出新邮件窗口是通过将 mailto: 的文本赋值给 window.location 完成的。
脚本的代码
< HTML>< HEAD>< TITLE>创建 mailto: URL< /TITLE>< SCRIPT LANGUAGE="JavaScript">< !--// 创建 mailto: URL anchor 标记function createMailto(sourceForm, targetField, urlType) {var to = sourceForm.to.value;var cc = sourceForm.cc.value;var bcc = sourceForm.bcc.value;var subject = sourceForm.subject.value;var body = sourceForm.body.value;var linkText= sourceForm.linkText.value;
if (linkText == "") {linkText = "Link Text";}var urltext = "";
// 如果此值已设置,将其包含到 URL 中if (to != "") {urltext += to;}else {alert("Sorry, you must fill out the 'To' field");sourceForm.to.focus();return(1);}if (cc != "") {urltext = addDelimiter(urltext);urltext += "CC=" + cc;}if (bcc != "") {urltext = addDelimiter(urltext);urltext += "BCC=" + bcc;}if (subject != "") {urltext = addDelimiter(urltext);urltext += "Subject=" + escape(subject);}if (body != "") {urltext = addDelimiter(urltext);urltext += "Body=" + escape(body);}if (urlType == "url") {urltext = "mailto:" + urltext;}else {urltext = "< A HREF="mailto:" + urltext + "">" + linkText + "< /A>";}
// 把新的 URL 放到表单域中targetField.value = urltext;
// 将焦点设置到此域并高亮显示其文本—这样可以方便地剪贴新 URLtargetField.focus();targetField.select();return(1);}
// 添加 "?" 或 "&" 作为名/值对的分隔符function addDelimiter(inputString) {var inString = inputString;
// 如果找不到 '?',那么这是第一个名/值对if (inString.indexOf("?") == -1) {inString += "?";}// 否则这是随后的名/值对,添加字符 "&"else {inString += "&";}return inString;}
// 测试 mailto: URL — 将 URL 赋值给文档的 location// 以弹出邮件窗口function testMailto(loc) {var doc = loc;
// 如果 mailto: URL 嵌入在 anchor 标记中if (doc.indexOf("HREF=") != -1) {// 从 anchor 标记中抽取 mailto: URLvar doc = doc.substring(doc.indexOf("HREF=")+6, doc.indexOf(">")-1);}
// 将 mailto: URL 赋值给文档 (弹出一个邮件窗口)window.location = doc;}
function viewMailto(mailtoText) {alert("URL:nn" + mailtoText);}// -->< /SCRIPT>< /HEAD>
< BODY>
< FONT FACE="Arial, Helvetica" SIZE=-1>< CENTER>< H1>创建 mailto: URL< /H1>< /CENTER>
< FORM NAME="mailtoForm">< CENTER>< TABLE BORDER=0 CELLSPACING=0 CELLPADDING=2 BGCOLOR="#ffff99" >< TR ALIGN="LEFT" VALIGN="TOP">< TD COLSPAN="4">< CENTER>< B>< FONT COLOR="#408080" SIZE=+1>在这里输入邮件细节< /FONT>< /B>< /CENTER>< /TD>< /TR>< TR ALIGN="LEFT" VALIGN="TOP">< TD>< FONT FACE="Arial, Helvetica" SIZE=-1>< B>To:< /B>< /TD>< TD>< INPUT TYPE="text" NAME="to" SIZE=30 STYLE="background-color:'#ffcc66'">< /TD>< TD>< FONT FACE="Arial, Helvetica" SIZE=-1>< B>Cc:< /B>< /TD>< TD>< INPUT TYPE="text" NAME="cc" SIZE=30 STYLE="background-color:'#ffcc66'">< /TD>< /TR>< TR ALIGN="LEFT" VALIGN="TOP">< TD ALIGN="LEFT">< FONT FACE="Arial, Helvetica" SIZE=-1>< B>Bcc:< /B>< /TD>< TD>< INPUT TYPE="text" NAME="bcc" SIZE=30 STYLE="background-color:'#ffcc66'">< /TD>< TD>< FONT FACE="Arial, Helvetica" SIZE=-1>< B>Subject:< /B>< /TD>< TD>< INPUT TYPE="text" NAME="subject" SIZE=30 STYLE="background-color:'#ffcc66'">< /TD>< /TR>< TR ALIGN="LEFT" VALIGN="TOP">< TD ALIGN="LEFT">< FONT FACE="Arial, Helvetica" SIZE=-1>< B>Body:< /B>< /TD>< TD COLSPAN="4">< TEXTAREA NAME="body" WRAP="VIRTUAL" COLS=63 ROWS=3 STYLE="background-color:'#ffcc66'">< /TEXTAREA>< /TD>< /TR>< TR ALIGN="LEFT" VALIGN="TOP">< TD ALIGN="LEFT">< FONT FACE="Arial, Helvetica" SIZE=-1>< B>Link Text:< /B>< /TD>< TD COLSPAN="3">< INPUT TYPE="text" NAME="linkText" SIZE=73 STYLE="background-color:'#ffcc66'">< /TD>< /TR>< TR>< TD COLSPAN="4">< CENTER>< INPUT TYPE="Reset" NAME="Clear" Value="Clear">< INPUT TYPE="button" NAME="CreateURL" VALUE="Create URL" onClick="createMailto(document.mailtoForm, document.mailtoForm.text, 'url')">< INPUT TYPE="button" NAME="CreateAnchor" VALUE="Create Link" onClick="createMailto(document.mailtoForm, document.mailtoForm.text, 'anchor')">< /CENTER>< /TD>< /TR>< TR>< TD COLSPAN="4">< CENTER>< FONT COLOR="#408080" SIZE=+1>< B>这里是你的 mailto: URL< /B>< /FONT>< /CENTER>< /TD>< /TR>< TR>< TD ALIGN="LEFT">< FONT FACE="Arial, Helvetica" SIZE=-1>< B>mailto URL:< /B>< /TD>< TD COLSPAN="3">< INPUT TYPE="text" NAME="text" SIZE=73 STYLE="background-color:'#ffcc66'">< /TD>< /TR>< TR>< TD COLSPAN="4">< CENTER>< INPUT TYPE="button" NAME="Test" VALUE="Test URL" onClick="testMailto(document.mailtoForm.text.value)">< INPUT TYPE="button" NAME="View" VALUE="View URL" onClick="viewMailto(document.mailtoForm.text.value)">< /CENTER>< /TD>< /TR>< /TABLE>< /CENTER>< /FORM>
< /FONT>
< /BODY>< /HTML>
正文
生成 mailto: URL 的脚本代码
< HTML>< HEAD>< TITLE>mailto: URL 脚本< /TITLE>< /HEAD>
< BODY>< SCRIPT LANGUAGE="JavaScript">< !--// 显示预格式化的信件窗口function popupMessage() {// 设置信件var to = "gwok@yeah.net";var cc = "dehaili@netease.com";var bcc = "gwok@netease.com";var subject = "Comments about your tips";var body = "gwok and dhl," +"nntI'd like to suggest the following improvements to your tips: n" +"nFirst, ..." + "nAlso, sometimes...." + "nnSincerely,nn" +"Your faithful reader...";// 创建邮件 URLvar doc = "mailto:" + to + "?cc=" + cc + "&bcc=" + bcc +"&subject=" + escape(subject) + "&body=" + escape(body);
// 弹出信件window.location = doc;}// -->< /SCRIPT>
< FORM> < INPUT TYPE="button" NAME="Test" Value="Test mailto: URL" onClick="popupMessage()"> < /FORM>
< /BODY>
< /HTML>
结语
本文中介绍了 JavaScript 的 mailto: URL功能,解释了它的语法以及如何从使用单一的地址属性扩展到使用信件的其它多种属性 (cc、bcc、subject 和 body)。我们准备了一个工具来创建 mailto: URL,以便你能将它复制并粘贴到你的站点页面上。到此你应该学会了如何编写这个工具的 HTML 以及它的脚本。我们还演示了一个脚本,用以生成工具 mailto: URL。你可以使用这两个工具测试 mailto: URLs。第一个提示你填写一个带有所需信息的表单。而在第二个里,你需要一些编程知识以修改脚本来支持你的特定输入。 |
|
回复:mailto: URL 工具
|
电脑与网络 dff(游客)发表评论于2010/9/1 14:42:58 |
| |
回复:mailto: URL 工具
|
以下引用阿嫂地方(游客)在2006-9-29 17:47:53的评论:怎么搞的? |
电脑与网络 11(游客)发表评论于2008/10/6 2:47:29 |
| |
回复:mailto: URL 工具
|
电脑与网络 阿嫂地方(游客)发表评论于2006/9/29 17:47:53 |
| |
回复:mailto: URL 工具
|
显示汉字那就不要全部编码,写个函数只对几个转换就行了: "%"转"%25") ">"转"%3E") "<"转 "%3C")"&"转 "%26")CHR(34)转"%22")CHR(10)转"%0A")CHR(13)转"%0D") |
|
回复:mailto: URL 工具
|
有点问题:
1、ie中,用escape函数,打开的邮箱就是十六进制,英文可以看,中文就不行的。
2、ns中,我用ns7试的,不管怎样,打开的邮箱中,所有中文内容都传不过去,一个汉字以两个?号代替。
请问有好的解决方法吗?我试过如果用href=mailto:这种链接做,ns 就认汉字了。
我的邮箱是:zhangdonghong@hotmail.com |
电脑与网络 zhangy(游客)发表评论于2005/8/13 1:11:06 |
| |
» 1 »
|