【问题标题】:mailto links not working in Chrome and Safari Mobilemailto 链接在 Chrome 和 Safari Mobile 中不起作用
【发布时间】:2012-07-24 20:12:07
【问题描述】:

在我的 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 移动版 Chrome 桌面

有什么建议吗?

【问题讨论】:

    标签: mailto


    【解决方案1】:

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

    【讨论】:

    • 此解决方案在 Chrome 桌面和 Safari 移动版中仍然不起作用,并且还会破坏 Safari 桌面。
    • 很遗憾 :( 但是你不能只创建一个简单的联系我们表格吗?就用户接受度而言,它比 MAIL TO 好得多。最后一个,打开 Outlook 或类似的,但是现在很多人都不用这个了。
    【解决方案2】:

    在搜索了复杂的解决方案后,我偶然发现了一个更简单的解决方案。这里的问题是,如果直接点击 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 手机

    【讨论】:

    • 请记住,如果这用于公共网站,则使用 mailto 并不好。现在很多人都不使用任何邮件客户端。还是很好的解决方案。
    • 我遇到了与我最初说window.location = mailto; 相同的问题。更新 a 标签的 href attr 后,它工作得很好。
    猜你喜欢
    • 2018-02-01
    • 2015-05-07
    • 2012-03-30
    • 2013-10-14
    • 2012-05-26
    • 2011-12-14
    • 2011-03-13
    • 2018-04-14
    • 2013-04-03
    相关资源
    最近更新 更多