2014-09-18 152 views
2

我想保存本地生成的文本文件。HTML和JavaScript - 如何保存純文本

此代碼幾乎沒有什麼我想:

<a download="filename.txt" href="data:text/plain,sometext">Download</a> 

sometext代表在標籤屬性string(使用JavaScript插入)。 您可以將其想象爲由用戶設置的textarea的內容。

的問題是,sometext不得含有"',否則href屬性認爲它的內容前面這會導致標籤,當你點擊它只是保存string的一部分完成。

由於sometext是由用戶生成的,它可以包含這些字符,我不想強​​制用戶不使用這些字符。

是否有另一種方式來保存文本文件使用HTML/JavaScript?我不想發送sometext到服務器。 (這將解決這個問題,因爲我就在那裏創建一個文件(包括"'),並配有下載鏈接)

回答

3

這將取決於你是如何加入這個something的HREF。

首先,單引號不會無所謂,因爲它是由雙引號"包裹,所以將工作做好這樣的:

<a href="data:text/plain,mytext'text">Download</a> 

當涉及到雙引號,在HTML環境下,你將不得不使用正確的符號,在這種情況下,它將是&quot;.HTML將它理解爲雙引號:

<a href="data:text/plain,mytext&quot;text">Download</a> 
<!-- It will turn into mytext"text --> 

然而

既然你說這將是一個用戶的輸入,我想你可能會設置href通過JavaScript,所以我不認爲這會事,它會像此:

(嘗試輸入單引號或雙引號...對於JS也沒什麼關係)

var ChangeHref = function() { 
 
    var el = document.getElementById("a1"); 
 
    el.href = "data:text/plain," + document.getElementById("inp1").value; 
 
}
<input id="inp1" type="text" /> 
 
<input type="button" value="change href" onclick="ChangeHref()" /> 
 

 
<br /> 
 

 
<a id="a1" download="filename.txt" href="data:text/plain,test">Download</a>

1

寫一個簡單的JavaScript刪除「和」字,像這樣

userText.replace(/\'/g, '').replace(/\"/g, ''); 

的/意味着它的正則表達式中,\」和\」代表文字字符「和」,並在年底的G上使它可找到所有出現更換

不過既然你想保持它,然後做:

userText.replace(/\'/g, '\\\'').replace(/\"/g, '\\\"'); 

\是一個文字反斜線。當你將它添加到它會逃跑出來的文件的名稱和平均文字「和」的方式。

+0

我想保持「和」在編輯,以顯示新的答案已保存的文件 – tomatenbrei 2014-09-18 15:57:46

+0

。 – user2615862 2014-09-19 16:34:10

相關問題