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 $(...) で実行されたクエリは、要素の配列/オブジェクトを返すためです。jquery の結果配列ではなく、リンク オブジェクトの .click 関数を呼び出すには、インデックス [0] を使用する必要があります (ID であるため 1 つだけを想定)。 ところで、配列にその機能があるとは思わない

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 に答える