2016-10-20 4 views
0

Ich versuche, eine E-Mail in Client-Seite außerhalb der aktuellen HTML-Seite (genauer gesagt ein div namens "inc" in meiner Seite) zu generieren. ich bin fest in den ersten Schritten, wo ich diesen Code haben:mailto die aktuelle html Seite

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> 

Wenn ich drücken Sie die Link nichts passiert, wenn ich das Debuggen kann in „Htmldata“ Variable den HTML-Code sehen. Außerdem, wenn ich die "htmlData" in der dritten Zeile zu einem Text wie "bla bla" oder sogar "" ändere, wird die E-Mail normal geöffnet.

was kann der grund dafür sein, dass mailto nicht mit htmlData arbeitet?

noch eine kleine Frage .. meinst du ich bin auf dem richtigen Weg für das Senden einer HTML-Seite? Denn ich fürchte, ich kann den HTML-Code später nicht mehr als HTML-Seite in der E-Mail anzeigen.

+0

es könnte URL codiert und URL Längen brauchen, sind wirklich –

Antwort

0

Ich denke, es ist nicht cool, eine Funktion zu erreichen. Versuchen Sie onclick = "javascript: emailCurrentPage()" und die href = "#" zu diesem Tag hinzuzufügen

+0

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

0

Es ist definitiv nicht cool, eine JS-Funktion mit href aufzurufen. Sie möchten auch Ihren mailto: Link formatieren.

<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>