1

在我的 jQuery Mobile 应用程序中,我试图以编程方式单击 mailto 链接,但没有成功。

这是HTML代码:

<section id="mensen" data-role="page">

<div data-role="content" class="content">
<a id="emailLink" href="mailto:123@123.com">This is the email link</a>

</div>
</section>

jQuery代码是:

$(document).ready(function()
{   
$('#emailLink').click();
})

链接功能正常,如果直接单击,则会启动默认电子邮件客户端,但不会以编程方式发生任何事情。

4

3 回答 3

10

确实是的,但这会起作用

$(document).ready(function()
{   
   $('#emailLink')[0].click();
})​

编辑:(“为什么?”评论)

因为使用 jquery $(...) 完成的查询返回元素的数组/对象。我们必须使用索引 [0](只需要一个,因为它是一个 id)才能调用链接对象的 .click 函数,而不是在 jquery 结果数组上。 顺便说一句,我不希望数组具有该功能

jquery 结果数组应该有一个 .get(...) 函数来从结果中检索元素

于 2012-07-18T12:39:37.893 回答
2

绑定点击事件并使用窗口位置触发事件:

<a id='test' href="mailto:test@test.nl">Test</a>​

和jQuery:

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

$('#test').click();

​</p>

JSFIDDLE

于 2012-07-18T12:35:13.053 回答
0

在尝试了此页面上的所有答案和评论后,我终于能够打开一个包含主题和目标属性的 mailto 链接。我只在 Chrome(版本 37.0.2062.124 m)和 IE-11 中对此进行了测试:

    $("#form-email").on("submit",
        function (e) {
            e.preventDefault();
            var mailto = "aname.gmail"
            $("#email-form").attr("href", "mailto:" + mailto.replace(".", "@") + ".com?subject=Email from someone...");
            document.getElementById('email-form').click();
        }
    );

HTML

    <a href="" id="email-form" target="_blank" >
于 2014-10-04T20:24:40.713 回答