在我的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 回答
在寻找复杂的解决方案后,我偶然发现了一个更简单的解决方案 . 这里的问题是,如果直接点击mailto链接,它可以在所有浏览器中使用,但如果间接点击它,例如通过jQuery .click()函数,它在所有浏览器中都不起作用 . 因此,这是我的实施:
现在,根据应用程序的上下文,可以设置链接的href参数,单击此链接时,它可以正常工作 . 我测试过以下的浏览器:
Mozilla Firefox桌面
Safari桌面
Chrome桌面
在ipad 1上移动Safari
你不应该使用mailto:
检查是否更好地创建一个简单的"Contact us"表单 . 但是,看看这个:i-cant-get-mailto-links-to-open-the-mail-app-from-mobile-safari-when-using-jqto