2015-06-09 17 views
3
<html> 
<head></head> 
<body> 
     <textarea id="area" style="height:200px;width:80%"> 
      Hello Everyone. 
      Entry name 2. 
      rahul 
      mahesh</textarea> 
<button id="submit">Submit</button> 

<script> 
function pad(num, diff) { 
    return diff > 0 ? pad(num, diff - 1) + 0 : num; 
} 

function processString(num) { 
    var tmp = num.replace(/\.+/g, ''); 
    var diff = 4 - tmp.length; 
    var tmpl = '<string>#{padded}</string>'; 
    var padded = diff > 0 ? pad(tmp, diff).split('').join('.') : num; 
    return tmpl.replace('#{padded}', padded); 
    } 

    var button = document.getElementById('submit'); 
    button.addEventListener('click', processArea); 

    function processArea() { 
    var area = document.getElementById('area') 
    var arr = area.value.split(/\n/); 
    for (var i = 0, l = arr.length; i < l; i++) { 
    arr[i] = processString(arr[i]); 
    } 
    area.value = arr.join('\r\n'); 
} 

</script> 
</body> 
</html> 

參考文獻見http://jsfiddle.net/1csov2s1/15/如何以plist格式顯示輸出。有沒有可能?並且textarea中的數據應該能夠下載?

從上面搗鼓它正確生成清單,但我需要生成的列表應該在的.plist格式。

任何人都可以幫助我。

預期輸出:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist SYSTEM "file://localhost/System/Library 
/DTDs/PropertyList.dtd"> 
<plist version="1.0"> 
<dict> 
<array> 
<string>Hello Everyone.</string> 
<string>Entry name 2.</string> 
<string>rahul</string> 
<string>mahesh</string> 
</array> 
</plist> 

電流輸出:

<string>Hello Everyone.</string> 
<string>Entry name 2.</string> 
<string>rahul</string> 
<string>mahesh</string> 

任何幫助,將不勝感激。

+0

嘗試使用此[plist中插件](http://dpearson.me/plist.js/)。 – sam100rav

+0

首先非常感謝您的回覆。 –

+0

,您是否試圖填寫的頁眉和頁腳部分自己 – engincancan

回答

3

您可以按如下方式將標題和頁腳添加爲字符串語法。您可以撥打功能saveTextAsFile進行下載。測試對鉻

function processArea() { 
    var area = document.getElementById('area'); 
    var arr = area.value.split(/\n/); 
    var header = '<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">\n<plist version="1.0">\n<dict>\n<array>'; 
    var footer = '\n</array>\n</plist>'; 
    for (var i = 0, l = arr.length; i < l; i++) { 
     arr[i] = processString(arr[i]); 
    } 
    area.value = header+arr.join('\r\n')+footer; 
} 

function saveTextAsFile() 
{ 
    var textToWrite = document.getElementById('area').value; 
    var textFileAsBlob = new Blob([textToWrite], {type:'text/plain'}); 
    var fileNameToSaveAs = "ecc.plist";/*Your file name*/ 

    var downloadLink = document.createElement("a"); 
    downloadLink.download = fileNameToSaveAs; 
    downloadLink.innerHTML = "Download File"; 
    if (window.webkitURL != null) 
    { 
     // Chrome allows the link to be clicked 
     // without actually adding it to the DOM. 
     downloadLink.href = window.webkitURL.createObjectURL(textFileAsBlob); 
    } 
    else 
    { 
     // Firefox requires the link to be added to the DOM 
     // before it can be clicked. 
     downloadLink.href = window.URL.createObjectURL(textFileAsBlob); 
     downloadLink.onclick = destroyClickedElement; 
     downloadLink.style.display = "none"; 
     document.body.appendChild(downloadLink); 
    } 

    downloadLink.click(); 
} 

JSFiddle

+0

我們可以爲此添加保存選項,以便從那裏我可以保存文本區域中提到的數據。 –

+0

http://jsfiddle.net/1csov2s1/17/ –

+0

它不是一項容易的任務與客戶端做,而是有關於它的任何 – engincancan

相關問題