首页 文章

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

提问于
浏览
1

在我的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

    在寻找复杂的解决方案后,我偶然发现了一个更简单的解决方案 . 这里的问题是,如果直接点击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参数,单击此链接时,它可以正常工作 . 我测试过以下的浏览器:

    • Mozilla Firefox桌面

    • Safari桌面

    • Chrome桌面

    • 在ipad 1上移动Safari

  • 1

    你不应该使用mailto:
    检查是否更好地创建一个简单的"Contact us"表单 . 但是,看看这个:i-cant-get-mailto-links-to-open-the-mail-app-from-mobile-safari-when-using-jqto

相关问题