2016-10-20 5 views
0

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

function emailCurrentPage() { 
var htmlData = document.getElementById('inc').innerHTML; 
window.location.href = "mailto:?subject=" + document.title + "&body=" + htmlData;} 

<a href="javascript:emailCurrentPage()">Mail this page!</a> 

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

Какая причина для того, чтобы почта не работала с htmlData?

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

+0

это, возможно, потребуется в кодировке URL и URL длины действительно ограничены –

ответ

0

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

+0

https://www.w3.org/TR/WD-html40-970917/struct/links.html#h- 13.2.2 – DaniP

0

Его явно не здорово назвать функцию 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 + '"&body=' + htmlData;}</script> 
 

 

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