2014-09-29 134 views
1

我試過這個例子,我們在網上看到了很多例子。但我想沒有那麼簡單,適用於所有瀏覽器(IE 8及以上版本)。帶錨點元素的jQuery mailto

我想簡單地打開與mailto鏈接的Outlook窗口。

<a href="#" name="emailLink" id="emailLink">Email</a> 

JQuery的:

$(function() { 
    $('#emailLink').on('click', function (event) { 
    alert("Huh"); 
    var email = '[email protected]'; 
    var subject = 'Circle Around'; 
    var emailBody = 'Some blah'; 
    window.location = 'mailto:' + email + '?subject=' + subject + '&body=' + emailBody; 
    }); 
}); 

當然,我是一個jQuery的新手。以上只是不起作用。它只是閃爍瀏覽器,但沒有打開。我想這是因爲window.location

有沒有簡單的解決方案?我希望這可以在上面的IE8 &以及所有瀏覽器中工作。

正文自動生成(在JSP中)。

+2

'href'拼寫錯誤。你也選擇ID,但標籤沒有ID – 2014-09-29 16:20:48

+2

#emailLink意味着ID =「emailLink」。在你的情況下,它將[name = emailLink] http://jsfiddle.net/cwa3454s/ – Cheery 2014-09-29 16:23:09

+0

你也需要一個逗號,在''click''之後和'function' – 2014-09-29 16:28:14

回答

10

這裏的工作液:

<a href="#" name="emailLink" id="emailLink">Email</a> 

和功能:

$(function() { 
    $('#emailLink').on('click', function (event) { 
     event.preventDefault(); 
    alert("Huh"); 
    var email = '[email protected]'; 
    var subject = 'Circle Around'; 
    var emailBody = 'Some blah'; 
    window.location = 'mailto:' + email + '?subject=' + subject + '&body=' + emailBody; 
    }); 
}); 
1
$(function() { 
    $('[name=emailLink]').click(function() { 
    var email = '[email protected]'; 
    var subject = 'Circle Around'; 
    var emailBody = 'Some blah'; 
    $(this).attr('href', 'mailto:' + email + 
      '?subject=' + subject + '&body=' + emailBody); 
    }); 
}); 

。點擊可與.mousedown更換等..或只是

$(function() { 
    $('[name=emailLink]').each(function() { 
    var email = '[email protected]'; 
    var subject = 'Circle Around'; 
    var emailBody = 'Some blah'; 
    $(this).attr('href', 'mailto:' + email + 
      '?subject=' + subject + '&body=' + emailBody); 
    }); 
}); 
+1

我甚至不會在這裏做點擊事件。只需設置href加載 – 2014-09-29 16:24:27

+0

@LoganMurphy誰知道他爲什麼要這樣做)我的網站上我最初爭奪電子郵件,在頁面加載後恢復它,並只在點擊替換hrefs。 – Cheery 2014-09-29 16:25:42

+0

@LoganMurphy你可以更新/詳細說明嗎?我的要求很簡單。點擊錨鏈接並使用jqeury發送電子郵件。就這樣。 – 2014-09-29 16:44:18

0

你的選擇是尋找一個ID

$('#emailLink') 

然而,這只是指定的名稱。

id="emaillink"添加到錨標籤。

+0

更新我的文章。它的錯字。 – 2014-09-29 16:42:34

+0

這應該是一個評論,而不是一個ñ答案! :-) – 2014-09-29 17:32:51

+0

這是爲什麼?它回答了你的問題:「爲什麼這不起作用?」我怎麼知道你有一個錯字。 – nickles80 2014-09-29 18:21:03

0

你不需要任何JavaScript/jQuery的在所有的這一點,只是下面的HTML應該做的:

<a href="mailto:[email protected]?subject=Circle Around&body=Some blah" name="emailLink">Email</a> 
+0

我知道如何直接在href中。我需要使用jQuery。謝謝! – 2014-09-29 16:42:17

+0

OP注意到他需要jQuery。 – 2015-07-10 16:46:27

1

如果你不需要地址作爲網站上任何地方的文本我會建議這樣的:

$('a[data-mail]').on('click', function() { 
    window.location = 'mailto:' + $(this).data('mail')+'@yourdomain.net' + '?subject=Spotflow'; 
}); 

鏈接woud是這樣的:

<a href="#" data-mail="max">Send me a mail</a> 

沒有機會機器人!