2015-05-22 21 views
1

我想下載附加的價值作爲一個HTML文件。 這裏是我的代碼。值通過iframe從out html文件中追加。 此代碼運行良好,並檢索正確的值。 我只是想下載附加價值爲完成新的HTML文件如何將JS附加值下載爲HTML文件?

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Iframe export</title> 

<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script> 
</head> 

<body> 

<iframe src="iframe.html" id="aaa"></iframe> 

<a href="javascript:;" onclick="return aaa()" id="download">AAA</a> 


<script type="text/javascript"> 
function aaa() 
{ 
    var aaa=document.getElementById('aaa').contentWindow.document.body.innerHTML; 

    $("body").append(aaa); 

} 

</script> 

</body> 
</html> 

能否請你幫我解決這個問題。 在此先感謝。

回答

2

您可以使用虛擬<a>標籤與download屬性和data URI

function aaa() 
{ 
    var aaa=document.getElementById('aaa').contentWindow.document.body.innerHTML; 
    var link = document.createElement("a"); 
    link.download = "filename.html"; 
    link.href = "data:text/html," + aaa; 
    document.body.appendChild(link); 
    link.click(); 
} 

Example

+0

大開發商! –

+0

對'download'屬性的瀏覽器支持是什麼?認爲它只在Chrome中工作,但也許這是舊知識。另外,你是否必須在虛擬鏈接上添加虛擬鏈接才能點擊()? –

+1

@PeterHerdenborg Chrome,Firefox,Opera和Android。基本上沒有IE或Safari。可能不必'appendChild'我只是從來沒有檢查過 – CodingIntrigue

-1
function createDownloadLink(anchorSelector, str, fileName){ 
     if(window.navigator.msSaveOrOpenBlob) { 
      var fileData = [str]; 
      blobObject = new Blob(fileData); 
      $(anchorSelector).click(function(){ 
       window.navigator.msSaveOrOpenBlob(blobObject, fileName); 
      }); 
     } else { 
      var url = "data:text/plain;charset=utf-8," + encodeURIComponent(str); 
      $(anchorSelector).attr("download", fileName);    
      $(anchorSelector).attr("href", url); 
     } 
    } 

    $(function() { 
     var str = aaa; 
     createDownloadLink("#download",str,"newsletter.html"); 
    });