Виклик / клацання на посилання електронної пошти за допомогою JQuery / JavaScript


82

Я хотів би викликати поштове посилання з JavaScript - тобто я хотів би метод, який дозволяє мені відкривати поштовий клієнт на ПК користувачів, точно так, як ніби вони натискали на звичайне посилання поштового зв’язку.

Як я можу це зробити?


Робочий приклад: jsfiddle.net/gaboom/h81qov5g
sibidiba

1
спробувати<button onclick="window.open('mailto:KingRider<contato@sandroalvares.com.br>');">Contact me</button>
KingRider

Відповіді:


138

Ви можете використовувати window.location.hrefтут ось так:

window.location.href = "mailto:address@dmail.com";

3
і як би я додав тіло? mailto: address@dmail.com? body = myBody та mailto: address@dmail.com& myBody у мене не працює ...
Макс.

@jipiboily, ти можеш пояснити більше? Який браузер ви пробували, і він не працював?
Аді

@Adnan, наскільки я пам’ятаю, це не працює з Opera та, можливо, більшою кількістю браузерів. Залежно від ваших потреб, ви можете вирішити цю проблему.
jipiboily

@Rolf Я щойно тестував в останній стабільній хромованій версії, все ще працює.
Нік Кравер

9
Макс, ви , ймовірно , зрозумів це, але і для читачів майбутніх: window.location.href = 'mailto:address@dmail.com&subject=Hello there&body=This is the body';. Ні ?і ні &amp;, просто&
cssyphus

9

Ви можете уникнути обговорення проблеми з порожньою сторінкою, замість цього скориставшись .click () із посиланням на сторінці:

document.getElementById('mymailto').click();
...
<a href="mailto:...." id="mymailto" style="display:none"></a>

Я спробував це: `виклик функції () {document.getElementById ('mymailto'). Click (); } <a href="tel:+48123456" id="mymailto" style="display:none"> </a> `і нова вкладка все одно відкриється.
Йода

3

робоча відповідь для мене, перевірена на chrome, IE та firefox разом із прогнозом

window.location.href = 'mailto:address@dmail.com?subject=Hello there&body=This is the body';

%0d%0a - це новий символ рядка тіла електронної пошти у посиланні mailto

%20 - це символ пробілу, який слід використовувати, але він спрацював і для мене із звичайним пробілом


1

Насправді існує можливість уникнути порожньої сторінки.

Я з’ясував, ви можете просто вставити iframe із посиланням mailto у dom. Це працює на поточних Firefox / Chrome та IE (також IE відобразить коротке діалогове вікно підтвердження).

Використовуючи jQuery, я отримав таке:

var initMailtoButton = function()
{
    var iframe = $('<iframe id="mailtoFrame" src="mailto:name@domain.com" width="1" height="1" border="0" frameborder="0"></iframe>');
    var button = $('#mailtoMessageSend');    
    if (button.length > 0) {            
        button.click(function(){
            // create the iframe
            $('body').append(iframe);
            //remove the iframe, we don't need it any more
            window.setTimeout(function(){
                iframe.remove();    
            }, 500);

        });
    }
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.