2012-12-02 18 views
0

我正在編寫一個利用localstorage的web應用程序。我現在的設置保存到本地存儲,格式如下:本地存儲操作和可能發送

重點:四位數字 值:我的數據

我需要從localStorage的採取一切單獨的數據,並輸出到具有以下格式的單個文件:

XXXX < - 四個數字鍵
數據
-linebreak-

我怎麼會去這樣做呢?另外,是否有可能採取所有這些信息,並通過電子郵件發送。或者通過某種方式將其從本地存儲中移出並粘貼到剪貼板,以便用戶可以將其複製到電子郵件中。

提前感謝。

回答

1
var output = ""; 
for(var key in localStorage) { 
    output += key+"\n"; 
    output += localStorage[key]+"\n"; 
    output += "\n"; 
} 

// output contains combined string 

至於電子郵件部分,你可以嘗試使用mailto:這樣,

<a href='mailto:[email protected]?subject=[subject here]&body=[email body here]'></a> 

這可以被組合成這樣的功能:

function sendLocalStorageByEmail(recipient) { 
    // create localstorage string 
    var output = ""; 
    for(var key in localStorage) { 
     output += key+"\n"; 
     output += localStorage[key]+"\n"; 
     output += "\n"; 
    } 

    // create temporary anchor to emulate mailto click in new tab 
    var anchor = document.createElement("a"); 
    anchor.href = "mailto:"+recipient+"?subject=Local+Storage+Data&body="+encodeURIComponent(output); 
    anchor.style.display = "none"; 
    anchor.setAttribute("target","_blank"); 
    anchor.appendChild(document.createTextNode("")); 
    document.body.appendChild(anchor); 

    if (anchor.click) { 
     return anchor.click(); 
    } 

    // some browsers (chromium/linux) have trouble with anchor.click 
    var clickEv = document.createEvent("HTMLEvents"); 
    clickEv.initEvent("click", true, true); 
    anchor.dispatchEvent(clickEv) 
} 

用法:

<a href='javascript:sendLocalStorageByEmail(prompt("Please enter your e-mail address"))'> 
    Send Email 
</a> 
+0

沒關係,它確實有用,我無法打字。將這個組合字符串輸出到電子郵件中,我該怎麼做? –

+0

檢查更新的答案,我已經包含了一個照顧電子郵件發送部分的功能。 – lostsource

+0

神聖的耶穌,你真了不起。最後一個問題。在我的變量中,它具有外語字符,例如åäö,出於某種原因,它在電子郵件字段中顯示爲 –