mailto链接无法在Chrome和Safari Mobile中使用

时间:2012-07-26 09:08:36

标签: mailto

在我的jQuery Mobile App中,我有一个mailto链接,它的href属性是动态生成的,它是通过jQuery“点击”的。这里是链接代码:

<a id="mealLink" href="mailto:123@123.com" style="display: none;">This is the mailto 
link</a>

点击处理程序附加到它上面:

$('#mailLink').bind('click', function() {
window.location.href = $(this).attr('href'); 
});

最后,一个函数为emailaddress,subject和message body创建链接的href属性,并通过jQuery模拟点击:

$emailAddress= ..

$subject= ....
$body=...
$emailString="mailto:"+$emailAddress+$subject+$body;
$emailLink= $("#mealMail");
$emailLink.attr("href",$emailString);
$emailLink.click();

现在,此代码完美地运行于: Mozilla桌面 Safari桌面 Android

但是没有工作: Safari Mobile Chrome桌面

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

在寻找复杂的解决方案后,我偶然发现了一个更简单的解决方案。这里的问题是,如果直接点击mailto链接,它适用于所有浏览器,但如果间接点击它,例如通过jQuery .click()函数,它在所有浏览器中都不起作用。因此,这是我的实施:

<a href='#mailtolink' id="emailLink">This is a mail to link</a>
$emailAddress= ..

$subject= ....
$body=...
$emailString="mailto:"+$emailAddress+$subject+$body;
$emailLink= $("#emailLink");
$emailLink.attr("href",$emailString);

现在,根据应用程序的上下文,可以设置链接的href参数,单击此链接时,它可以正常工作。我已经测试过以下的浏览器:

  1. Mozilla Firefox桌面
  2. Safari桌面
  3. Chrome桌面
  4. ipad 1上的Safari mobile

答案 1 :(得分:0)

你不应该使用mailto:
检查是否更好地创建一个简单的“联系我们”表单。 但是,请看一下:i-cant-get-mailto-links-to-open-the-mail-app-from-mobile-safari-when-using-jqto