2017-04-18 37 views
0

我試圖放在一起,在瀏覽器中工作的功能:的Javascript:轉換HTML實體然後下載HTML

  1. 以一個元素中的HTML
  2. 替換HTML實體常見的特殊字符(即轉換©&copy;),但不取代(<> /「'#等)字符的HTML關鍵
  3. 下載替換爲HTML文件,甚至更好,但這些代碼複製到剪貼板

我已經能夠得到以下要點爲點1和3工作,但替換函數似乎不適用於嵌套的HTML元素內的字符。我不是很高級的JavaScript,一直沒有找到解決方案。任何幫助表示讚賞。

<div id="email-html"> 
 
    <p>test ©</p> 
 
</div> 
 

 
<a id="ClickMe" onclick="(function() { 
 
    function downloadInnerHtml(filename, elId, mimeType) { 
 
     var elHtml = document.getElementById(elId).innerHTML; 
 
     var link = document.createElement('a'); 
 
     var coHtml = elHtml.replace(/©/g, '&copy;'); 
 
     mimeType = mimeType || 'text/plain'; 
 

 
     link.setAttribute('download', filename); 
 
     link.setAttribute('href', 'data:' + mimeType + ';charset=utf-8,' + encodeURIComponent(coHtml)); 
 
     link.click(); 
 
    } 
 

 
    var fileName = 'email.html'; 
 
    downloadInnerHtml(fileName, 'email-html', 'text/html'); 
 
})(); 
 
" href="#">Click to Download</a>

+1

在那裏,你不能用''