mailto';的主体正在停止邮件窗口以打开…javascript
我正在尝试使用以下javascript打开邮件回复窗口:mailto';的主体正在停止邮件窗口以打开…javascript,javascript,Javascript,我正在尝试使用以下javascript打开邮件回复窗口: window.location='mailto:'+to+'?subject='+subject+'&cc='+cc+'&body='+body; 问题是body变量中有一些字符(如引号、特殊字符等)会发出错误消息。如果我给它一个静态的简单体字符串,同样的代码也可以工作 firefox错误类似于 错误:未捕获异常:[异常…“失败”nsresult:“0x80004005(NS_错误_失败)”位置:“JS帧::(url
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个部分并重复,直到你得到足够小的内容在问题中发布。祝你好运!我已经添加了主体内容,请看一下请考虑将您怀疑导致问题的内容张贴在正文中。这将有助于为我们提供一些线索。谢谢。