2012-07-26 62 views
1

在我的jQuery Mobile的應用程序,我有一個mailto鏈接,是動態生成的href屬性,它是通過jQuery.Here「點擊」是鏈接代碼:mailto鏈接

<a id="mealLink" href="mailto:[email protected]" style="display: none;">This is the mailto 
link</a> 

的點擊處理程序連接到它是這樣的:

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

最後,函數創建與EMAILADDRESS,主題和郵件正文中的鏈接的href屬性,然後單擊通過jQuery模擬:

$emailAddress= .. 

$subject= .... 
$body=... 
$emailString="mailto:"+$emailAddress+$subject+$body; 
$emailLink= $("#mealMail"); 
$emailLink.attr("href",$emailString); 
$emailLink.click(); 

現在,這個代碼在正常使用: Mozilla的桌面 Safari瀏覽器的桌面 的Android

但不工作: 的Safari移動 Chrome桌面

有什麼建議?

回答

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參數可以設置並點擊該鏈接時,它的工作原理。我在下面的browers測試:

  1. Mozilla Firefox的桌面
  2. Safari瀏覽器桌面
  3. Chrome的桌面
  4. iPad上
  5. 的Safari移動1
+0

記住,如果這對於公共網站是不好用的mailto。很多人不使用任何郵件客戶端現在天。還有很好的解決方案。 – 2012-08-16 22:38:04

+0

我有同樣的問題在哪裏我最初說'window.location = mailto;'。更新標籤的href attr後,它的工作完美。 – 2015-09-16 20:58:25

0

您不應該使用mailto:
檢查是否更好創建一個簡單的「聯繫我們」表單。 但仍然看看這個:i-cant-get-mailto-links-to-open-the-mail-app-from-mobile-safari-when-using-jqto

+0

這個解決方案仍然在Chrome桌面和Safari瀏覽器不工作移動和另外打破Safari桌面。 – user1107888 2012-07-26 09:24:15

+0

傷心到這裏:(但你不能只創建一個簡單的與我們聯繫形成的?只要用戶接受好得多呢。郵件到最後一個,打開Outlook或相似的,但很多人不」 T選用任何這現在天。 – 2012-08-03 16:34:58