#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 =»#» к этому тегу