Вопрос по javascript, html – mailto используя javascript

40

Я хочу открыть новый почтовый шаблон для Outlook с адресом «На адрес»; всякий раз, когда пользователь нажимает на изображение. Я вернул свой код на html-странице (связанной с изображением), всякий раз, когда он загружает javascript, должен открывать новый почтовый шаблон. Но функционал не работает. Пожалуйста, дайте мне знать, что не так в моем коде.

<code>body onLoad="redirect()"

script language="JavaScript"

function redirect() 

      var email = "[email protected]"
      var mailto_link = 'mailto:' + email
      window = window.open(mailto_link, 'emailWindow')
      if (window && window.open && !window.closed)         
          window.close()
</code>
Это из-за блокировки всплывающих окон? Ramesh
window - переменная только для чтения. Rob W

Ваш Ответ

5   ответов
58

которые не возвращают данные HTTP в браузер mailto:, irc://, magnet:, ftp:// (<- это зависит от того, как это реализовано, обычно в браузер встроен FTP-клиент)) можно запросить в том же окне без потери текущего содержимого. В твоем случае

function redirect()
{
    window.location.href = "mailto:[email protected]";
}
<body onload="javascript: redirect();">

Или просто прямо

<body onload="javascript: window.location.href='mailto:[email protected]';">
Следует отметить, что браузер по-прежнему будет вызыватьonbeforeunload-Мероприятие:window.onbeforeunload = () => {console.log("onbeforeunload")}; window.location.href = "mailto:[email protected]"; D B
6

используя что-то вроде:

    var mail = document.createElement("a");
    mail.href = "mailto:[email protected]";
    mail.click();

Это перенаправляется браузером на некоторый почтовый клиент, установленный на машине, без потери содержимого текущего окна ... и вам не понадобится какой-либо API, такой как 'jQuery'.

window.open('mailto') обычно оставляет пустую вкладку открытой с mailto в URL, поэтому этот способ выглядит намного лучше Unknownweirdo
4

но это не обязательно):

    $( "#button" ).on( "click", function(event) {
         $(this).attr('href', 'mailto:[email protected]?subject=hello');
    });

Когда пользователи нажимают на ссылку, мы заменяем атрибут href выбранного элемента.

Будьте осторожны, не препятствуйте компиляции по умолчанию (event.preventDefault), мы должны позволить это сделать, потому что мы только что заменили href куда идти

Я думаю, что роботы этого не видят, адрес защищен от спама.

4

Вы можете использовать простойmailto, см. ниже для простой разметки.

<a href="mailto:[email protected]">Click here to mail</a>

Как только вы нажмете, откроется ваш Outlook или любой другой почтовый клиент, который вы установили.

Эй, Грант, спасибо за редактирование моей терминологии, чтобы использовать. Я тоже спешу набрать. Allan
21

код в jsFiddle. Он использует jQuery для изменения ссылки на ссылку. Вы можете использовать любую другую библиотеку на своем месте. Он должен работать

HTML

<a id="emailLnk" href="#">
    <img src="http://ssl.gstatic.com/gb/images/j_e6a6aca6.png">
</a>

JS

$(document).ready(function() {
    $("#emailLnk").attr('href',"mailto:[email protected]");
});​

ОБНОВИТ

Другой пример кода, если идентификатор известен только во время события клика

$(document).ready(function() {
    $("#emailLnk").click(function()
     {
         alert('h');
         document.location.href = "mailto:[email protected]";
     });
});​

Похожие вопросы