1

私のjQueryモバイルアプリには、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 デスクトップ Android

ただし、次の環境では機能しません: Safari モバイル Chrome デスクトップ

助言がありますか?

4

2 に答える 2

1

複雑な解決策を探した後、偶然、はるかに簡単な解決策を見つけました。ここでの問題は、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. サファリ デスクトップ
  3. Chrome デスクトップ
  4. iPad 1 の Safari モバイル
于 2012-07-26T15:54:37.003 に答える
0

mailto を使用しないでください:
シンプルな「お問い合わせ」フォームを作成する方がよいかどうかを確認してください。それでも、これを見てください: i-cant-get-mailto-links-to-open-the-mail-app-from-mobile-safari-when-using-jqto

于 2012-07-26T09:11:53.720 に答える