2016-10-20 10 views
0

私の現在のhtmlページ(より正確には、私のページ内の "inc"という名前のdiv)から、クライアント側で電子メールを生成しようとしています。 は、私はこのコードを持っている非常に最初のステップでこだわっている: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> 

私はリンク何も起こらない押すと、I をデバッグするときは「htmlData」変数にHTMLコードを見ることができます。さらに、3行目の "htmlData"を "bla bla"や ""のようなテキストに変更すると、電子メールが正常に開かれています。

mailtoがhtmlDataで動作しない理由は何ですか?

もう少し質問です。私はHTMLページを送信するための正しい方法だと思いますか?私は後で、HTMLコードをHTMLページとして電子メールに変換することができなくなるのではないかと恐れているからです。

+0

それは、URLエンコードされたURLの長さが本当に –

答えて

0

私は関数をhrefするのはクールではないと思います。そのタグにonclick = "javascript:emailCurrentPage()"とhref = "#"を追加してみてください。

+0

を拘束されている必要がある場合がありますhttps://www.w3.org/TR/WD-html40-970917/struct/links.html#h- 13.2.2 – DaniP

0

hrefでJS関数を呼び出すことは間違いありません。 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>

関連する問題