«mailto» текущей HTML-страницы

#javascript #jquery #html #mailto

#javascript #jquery #HTML #mailto

Вопрос:

Я пытаюсь сгенерировать электронное письмо на стороне клиента из текущей HTML-страницы (если быть более точным, div с именем «inc» внутри моей страницы). я застрял на самых первых шагах, где у меня есть этот код:

     function emailCurrentPage() {
    var htmlData = document.getElementById('inc').innerHTML;
    window.location.href = "mailto:?subject="   document.title   "amp;body="   htmlData;}
  
     <a href="javascript:emailCurrentPage()">Mail this page!</a>
  

Когда я нажимаю ссылку, ничего не происходит, при отладке я могу видеть html-код в переменной «htmlData».

Более того, когда я меняю «htmlData» в третьей строке на какой-нибудь текст вроде «bla bla» или даже <html><body></body></html> электронное письмо открывается нормально.

В чем может быть причина того, что mailto не работает с htmlData?

Еще один маленький вопрос. Как вы думаете, я на правильном пути для отправки HTML-страницы? Потому что я боюсь, что позже я не смогу преобразовать HTML-код, который будет отображаться как HTML-страница в электронном письме.

Комментарии:

1. может потребоваться кодирование URL, а длина URL действительно ограничена

Ответ №1:

Определенно не круто вызывать функцию JS с помощью href. Вы также захотите отформатировать свою ссылку mailto:.

 <button onclick="javascript:emailCurrentPage()">Mail this page!</button>


<script>
function emailCurrentPage() {
var htmlData = document.getElementById('inc').innerHTML;
window.location.href = 'mailto:?subject="'   document.title   '"amp;body='   htmlData;}</script>


<main id="inc">
  Some text here
</main>  

Ответ №2:

Я думаю, что это не круто ссылаться на функцию. Попробуйте добавить onclick= «javascript:emailCurrentPage()» и href =»#» к этому тегу