我正在尝试在 javascript 中使用以下内容打开邮件回复窗口:
window.location='mailto:'+to+'?subject='+subject+'&cc='+cc+'&body='+body;
问题是 body 变量中有一些字符(如引号、特殊字符等)会给出错误消息。如果我给它一个静态的简单正文字符串,同样的代码会起作用。
firefox 错误类似于
Error: uncaught exception: [Exception... "Failure" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "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 中。
有关更多信息,请参阅此 FAQ on escape, encodeURI, and encodeURIComponent .
关于javascript - mailto 正文中的某些字符正在停止打开邮件窗口....javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10732623/