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

标签 javascript

我正在尝试在 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/

相关文章:

javascript - 如何仅在满足条件时更新文档?

javascript - 如何降低弹丸速度变量的计算成本?

javascript - 使用React Typescript CRA设置 Electron

javascript - 使用 Javascript 或任何其他语言的 cookie 发出客户端 HTTP GET 请求

javascript - 处理按钮点击

javascript - 复制对象到数组

javascript - AngularJS:按分组列表的总和排序

javascript - 当 prop 是函数时,测试子组件 props 是否正确构造

javascript - 在 D3.js 中如何将 <g> 居中放置在 <svg> 中?

javascript - JS API 应该将 jqXHR 转换为 Promises 吗?