Mailto正文文本未填写IE

Cod*_*edd 6 html mailto outlook internet-explorer

我使用mailto允许客户提交产品报价信息.我试图通过将mailto链接构造为字符串,并根据以下代码连接引用信息,将引号自动填充到电子邮件正文中:

var quoteinfo = 'quote information here';
var link = '<a href="mailto:email?subject=subject&body=Please enter your contact information 
and message here: %0A%0A%0AQuote:%0A' + quoteinfo + '">email</a>';
Run Code Online (Sandbox Code Playgroud)

但是,在使用IE时,单击链接时会生成电子邮件,但只显示明确添加的文本 - quoteinfo变量中没有存储任何内容.我已经验证最终链接确实包含所有引用信息 - 它只是没有出现在电子邮件中.由于电子邮件确实成功生成了部分文本,我不相信这是一个字符溢出问题(在任何情况下,即使在quoteinfo变量中只有30个字符,也会发生这种情况.

也许这是邮件客户端特有的问题?

最后一点:我很清楚,有一种流行的方式用表格替换mailto - 由于其他原因,我不能在这里做到这一点,所以请不要通过建议切换到表单来做出回应.

我的链接如何显示的具体示例如下:

mailto:sales@optecinc.com?subject=Submission From Quote Creator &body=Please enter
your contact information and message here: %0A%0A%0AQuote:%0A#17350 - IFW 2-inch -
$829.00%0A
Run Code Online (Sandbox Code Playgroud)

Gar*_*ary 12

哈希符号(#)在URL中具有特殊含义(记住锚名称?例如http://example.com#TopOfPage).替换为%23.

请参阅W3的URL编码参考

更好的是,JavaScript可以通过该encodeURI()功能为您完成.

window.onload = function() {
  var eTo = encodeURI("sales@example.com");
  var eSubj = encodeURI("Submission From Quote Creator");
  var eBody = encodeURI("Please enter your contact information and message here: \n\n\nQuote:\n#17350  IFW 2-inch -$829.00\n");

  var email = "mailto:" + eTo + "?subject=" + eSubj + "&body=" + eBody;

  document.getElementById("sales").href = email;
}
Run Code Online (Sandbox Code Playgroud)
<a href="" id="sales">email</a>
Run Code Online (Sandbox Code Playgroud)