mailto';的主体正在停止邮件窗口以打开…javascript

mailto';的主体正在停止邮件窗口以打开…javascript,javascript,Javascript,我正在尝试使用以下javascript打开邮件回复窗口: window.location='mailto:'+to+'?subject='+subject+'&cc='+cc+'&body='+body; 问题是body变量中有一些字符(如引号、特殊字符等)会发出错误消息。如果我给它一个静态的简单体字符串,同样的代码也可以工作 firefox错误类似于 错误:未捕获异常:[异常…“失败”nsresult:“0x80004005(NS_错误_失败)”位置:“JS帧::(url

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

window.location='mailto:'+to+'?subject='+subject+'&cc='+cc+'&body='+body;  
问题是body变量中有一些字符(如引号、特殊字符等)会发出错误消息。如果我给它一个静态的简单体字符串,同样的代码也可以工作

firefox错误类似于

错误:未捕获异常:[异常…“失败”nsresult:“0x80004005(NS_错误_失败)”位置:“JS帧::(url)::发送邮件::第49行“数据:否”

正文内容: “XXXXX”


找出原因伙计们…它不允许我发送超过1209个字符。将此作为一个新问题发布。

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

escape(stringOfTextToEscape);
因此,您的window.location将如下所示:

window.location='mailto:'+to+'?subject='+subject+'&cc='+cc+'&body='+escape(body) 
这可以确保将任何特殊字符转换为unicode转义序列,这样可以安全地传递到URL中

有关更多信息,请参见此项。

尝试以下操作:

window.location='mailto:'+to+'?subject='+subject+'&cc='+cc+'&body='+escape(body); 
escape()
函数对特殊字符进行编码,除了:*@-\+/


所以
escape(“你好吗?来吧!”);
会给你这样的结果:
How%20you%3F%20Come%20On%21

我试过了,但它不起作用……同一个body变量会通过这样的警报函数得到正确的警报:警报(to+'.''.'.''.''.'+'.'.'+'主题+'.'.'.'.'.''.'''.'''.'''.'''.''.'.'''.''''.''.''''.'''''.'''.''''''.'''.''''.'''''';不起作用..看起来正文中的空格正在创建问题…仍在查找添加的正文内容,查看一下我尝试过,但它不起作用…相同的正文变量通过如下警报函数得到正确的警报:警报(到+''.'.'.'.''.'.''.'.'.'.'.'.'.'+主题+'.'.''.'.'.'.'.'.'.'.''.'.'.'.'.'+body);你可以试着将问题缩小到所讨论的角色,方法是将主体切成1/4,一次测试一个部分,直到找到分解主体的部分,然后再次将其分成4个部分并重复,直到你得到足够小的内容在问题中发布。祝你好运!我已经添加了主体内容,请看一下请考虑将您怀疑导致问题的内容张贴在正文中。这将有助于为我们提供一些线索。谢谢。