The command line argument is not valid verify the switch you are using
当用户使用javascript mailto单击表单的提交按钮时,我试图打开一个Outlook:
当我从chrome或firefox提交表单时,它可以打开,但在IE中,我得到以下错误:
命令行参数无效。请验证正在使用的开关
我真的不确定你做了多少研究,但是当你查找错误时,谷歌的第一个结果是微软的一块板,在那里它似乎被解决了:
https://support.microsoft.com/en-us/kb/312346
据我所见,您的问题与URI模式"mailto"的文件关联有关。我建议您按照链接中的步骤进行操作,并在下次彻底搜索。
Microsoft知识库文章很有用,但它只是一个解决方法:
- 例如,如果我将默认程序更改为"mail express"(Windows 10),则在IE中单击mail to不会导致问题;电子邮件将在"mail express"中打开,并可以立即发送。
- 但是,如果我将默认程序更改回"outlook 2016"(Windows 10),则在IE中单击mailto会导致问题:"命令行参数无效,请验证您使用的开关。"
问题:
我的mailto值来自角度,我的mailto有特殊的字符。我只能使用angular的EDOCX1(jsfiddle)重新创建这个问题。我不能用纯HTML(jsfiddle)重新创建这个问题。
解决方案:
解决方案js在这里摆弄;我的问题同样是针对角/
在我的例子中,我的mailto-href属性值包括双引号(即
1 | Mail link |
当我
1 | Mail link |
音符:
我有双引号(即
看起来,即使在编码之前,空间(即
我不确定这些参数是否有不同的要求,即,是否将
注意不要过度编码。仅编码单独的
- 不要编码冒号(即
mailto 后面的: ;浏览器可能无法识别这是一个mailto链接(参见解决方案) - 不要对问号(即
? 号)或等号(即= 号)进行编码;浏览器/outlook可能无法解析参数(见解决方案)。
所以当我编码时:
1 |
注意结果;对冒号(即%3a)和等号(%3d)编码错误。
1 | "mailto%3Aperson%40place.com%3Fsubject%3DSubject%20includes%20%22double-quotes%22" |
小心不要双重编码,即编码已经编码的字符串!
我将从问题中删除Java标记;我同意评论,我认为Java是不相关的。