Javascript 剥离HTML,保留mailto标记的换行符

Javascript 剥离HTML,保留mailto标记的换行符,javascript,mailto,Javascript,Mailto,我几乎从投票最多的人那里得到了答案,但我正试图在mailto标签正文中添加div内容 function getInnerText(el) { var sel, range, innerText = ""; if (typeof window.getSelection != "undefined" && typeof document.createRange != "undefined") { sel = window.getSelection();

我几乎从投票最多的人那里得到了答案,但我正试图在mailto标签正文中添加div内容

function getInnerText(el) {
    var sel, range, innerText = "";
    if (typeof window.getSelection != "undefined" && typeof document.createRange != "undefined") {
        sel = window.getSelection();
        sel.selectAllChildren(el);
        innerText = "" + sel;
        sel.removeAllRanges();
    } else if (typeof document.selection != "undefined" && typeof document.body.createTextRange != "undefined") {
        range = document.body.createTextRange();
        range.moveToElementText(el);
        innerText = range.text;
    }
    return innerText;
}


function doMailTo() {
    var title = $('#title').val();
    var el = document.getElementById("container");
    //alert(getInnerText(el));  //--> works fine

    location.href = "mailto:?subject="+title+"&body="+(getInnerText(el));
}

<a href="javascript:doMailTo();">Email</a>
函数getInnerText(el){ 变量sel,范围,innerText=“”; if(typeof window.getSelection!=“未定义”&&typeof document.createRange!=“未定义”){ sel=window.getSelection(); 选择所有儿童(el); innerText=”“+sel; 选择removeAllRanges(); }else if(typeof document.selection!=“未定义”&&typeof document.body.createTextRange!=“未定义”){ range=document.body.createTextRange(); 范围。移动到元素文本(el); innerText=range.text; } 返回内部文本; } 函数doMailTo(){ var title=$('#title').val(); var el=document.getElementById(“容器”); //警报(getInnerText(el));//-->工作正常 location.href=“mailto:?subject=“+title+”&body=“+(getInnerText(el)); } 这在警报中非常有效,但在电子邮件中会丢失换行符。有没有办法用%0A%0A替换换行符?还是用另一种方式做同样的事情


谢谢大家!

简短的回答,但是这个
%0D%0A%0D%0A
对我很有用

在传递给GET参数之前,是否尝试使用
encodeURIComponent()