0

localstorageを利用するWebアプリを書いています。次の形式でローカルストレージに保存するように設定しました。

キー:4桁の数字値:私のデータ

localStorageからすべての個別のデータを取得し、次の形式で1つのファイルに出力する必要があります。

XXXX<-4桁のキー
データ-
改行-

どうすればこれを行うことができますか?また、どういうわけかこのすべての情報を取得して、電子メールで送信することは可能ですか。または、ローカルストレージからクリップボードに取り出して、ユーザーがメールにコピーできるようにする方法もあります。

よろしくお願いします。

4

2 に答える 2

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:user@domain?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>
于 2012-12-02T19:13:42.380 に答える
0

mailtoの前に、メールアドレスをコードに直接統合することができます。

anchor.href = "mailto:*youradress@ttt.com*"+recipient+"? 
subject=Local+Storage+Data&body="+encodeURIComponent(output);
于 2020-02-06T17:48:51.997 に答える