在我的jQuery Mobile应用程序中,我有一个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');
});
最后,一个函数为带有电子邮件地址、主题和消息正文的链接创建href属性,并通过jQuery:模拟点击
$emailAddress= ..
$subject= ....
$body=...
$emailString="mailto:"+$emailAddress+$subject+$body;
$emailLink= $("#mealMail");
$emailLink.attr("href",$emailString);
$emailLink.click();
现在,此代码在以下环境中运行良好:Mozilla桌面Safari桌面安卓
但不适用于:Safari MobileChrome桌面
有什么建议吗?
在搜索了复杂的解决方案后,我偶然发现了一个更简单的解决方案。这里的问题是,如果直接点击mailto链接,它在所有浏览器中都可以工作,但如果间接点击,例如通过jQuery.colick()函数,它并不能在所有浏览器上工作。因此,这里是我的实现:
<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参数,当单击该链接时,它就会工作。我测试了以下浏览器:
- Mozilla Firefox桌面
- Safari桌面
- Chrome桌面
- ipad 1上的Safari手机
您不应该使用mailto:
检查是否最好创建一个简单的"联系我们"表单。但是,还是要看看这个:i-cant-get-mail-to-links-to-open-mail-app-from-mobile-safari-when-using-jqto-