繁体   English   中英

mailto的正文中的某些字符正在停止邮件窗口打开... javascript

[英]Some character in the mailto's body is stopping the mail window to open…javascript

我正在尝试使用以下javascript打开邮件回复窗口:

window.location='mailto:'+to+'?subject='+subject+'&cc='+cc+'&body='+body;  

问题是在body变量中有一些字符(如引号,特殊字符等)会给出错误消息。 如果我给它一个静态的简单体字符串,相同的代码可以工作。

firefox错误是这样的

错误:未捕获的异常:[异常...“失败”nsresult:“0x80004005(NS_ERROR_FAILURE)”位置:“JS frame ::(url):: send_mail :: line 49”data:no]“

正文内容:“XXXXX”

找出原因的人......它不允许我发送超过1209个字符。 将此作为一个新问题发布。

如果要将字符串传递给查询字符串中的参数,并且该字符串可能包含url中具有其他含义的字符,则需要使用以下命令对其进行转义:

escape(stringOfTextToEscape);

因此,您的window.location将如下所示:

window.location='mailto:'+to+'?subject='+subject+'&cc='+cc+'&body='+escape(body) 

这可以确保将任何特殊字符转换为unicode转义序列,这可以安全地传递到URL。

有关更多信息,请参阅有关escape,encodeURI和encodeURIComponent的常见问题解答

尝试这个:

window.location='mailto:'+to+'?subject='+subject+'&cc='+cc+'&body='+escape(body); 

escape()函数对特殊字符进行编码,但以下情况除外:* @ - _ +。 /

escape("How are you? Come on!"); 会给你这样的结果: How%20are%20you%3F%20Come%20On%21

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM