お世話になります。
ちょっとした会の幹事を一年間やることになりました。(余談)
以下のプログラムで宛先、件名、お名前、預かり金額をアンドロイド携帯のローカルストレージ
に保存しておきたいのですが、
どのようにすればよいでしょうか?
ご指導お願いいたします。
以下のプログラム(?)は宛先などを記入して、メーラーから送信するといったものです。
<form name=mailform>
宛先:<input name=to type=text value="info@example.com"><br>
件名:<input name=subject type=text value="hello"><br>
お名前:<input name=name type=text value="namae"><br>
預かり金額:<input name=azukari type=text value="jyusyo"><br>
<button type=submit>送信</button>
</form>
<script>window.addEventListener('load',function(ev){
document.forms['mailform'].addEventListener('submit',function(submitEv){
submitEv.preventDefault();
var form = submitEv.target;
var to = form.elements['to'].value;
var subject = form.elements['subject'].value;
var name = form.elements['name'].value;
var addr = form.elements['addr'].value;
var body = "お名前:"+ name + "預かり金額:" + azukari
if (!to) return;
var url = "mailto:" + to + "?subject=" + subject + "&body=" + body;
var a = form.appendChild(document.createElement('a'));
a.href = url;
a.click();
form.removeChild(a);
}, false);
}, false)</script>
※このプログラムも以前こちらで質問して教えていただいたものです。
素人の為、プログラムの説明などはうまくできないと思いますが、ちょっと勉強しましたので、
わかる範囲で回答に必要な質問には答える覚悟です。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
ローカルへの保存といっても、テキストファイルのような形でSDカードに保存するようなやり方はちょっと難しいでしょう。
そもそもWebに搭載されているJavaScriptというのは、ローカル環境へのアクセスを厳しく制限して作られています。だって、スクリプトでファイルを保存できるようになっていたら、例えばシステムの起動ディレクトリにウイルスファイルを保存したり、システムのファイルを書き換えたりできるってことでしょう? それはあまりに危険です。
というわけで、JavaScriptのスクリプトをちょっと書き換えてローカルに保存できるようにする、という考え方は捨てて下さい。方法としては、以下の3つのいずれかがいいと思います。
1. サーバーに保存する
サーバーを立ててそこにデータを送信し、保存する。そこからデータをダウンロードすることは可能です。このやり方なら、ローカルにファイルとして保存できます。ただし面倒。
2. ローカルストレージを使う
JavaScriptでは、テキストに名前をつけて保存しておけます。こんな感じです。
localStorage.setItem("名前", 保存するテキスト );
これで保存したものは、ブラウザを終了した後も保存して残ります。消えたりはしません。取り出すときはこうします。
var 変数 = localStorage.getItem("名前");
これで、指定した名前で保存したテキストが取り出せます。テキストを取り出すためのページを作って、そこにアクセスして表示するようにすれば便利でしょう。個人的には一番てっとり早くておすすめ。
3. テキストを表示して手作業で保存する
新しいページを開いてテキストを表示し、それを手作業で保存する、というやり方はあるでしょう。Android 4.0以降なら、オフライン用に保存できるので、Webページとして保存しておくというやり方ができます。例えば、こんな感じ。
var newwin = window.open("", "");
newwin.document.open();
newwin.document.write( 表示するテキスト );
newwin.document.close();
これでテキストを表示したページが開かれますから、それを保存すればいいでしょう。
回答有難うございます。
2ローカルストレージを使うを試してみます。
いろいろ不安材料もあるようです。(ウイルスとかファイルの書き換えとか)
慎重にしなくてはならないようですね。
わたしの場合、
localStorage.setItem("宛先", "");
var to type= localStorage.getItem("宛先");
といった書き方で間違いないでしょうか?
ご指導お願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
setIntervalの間隔を途中で変更...
-
[Javascript]TEXTAREAで改行さ...
-
Jqueryを使って値の合計を簡単...
-
ユーザーフォームでの検索結果...
-
プルダウンから移動時のフレー...
-
1つのページにformを2つ設置。2...
-
onchangeイベントを強制的に発...
-
このjavascriptがわかりません
-
onClickとsubmitの処理順序
-
新しくフォルダを作成したい
-
javascriptで二重送信防止
-
JavaScript Form OPTION value
-
テキストの背景色を変える。
-
2次元配列で2項目についてソー...
-
ラジオボタンの値でリンク先を...
-
マウスをブラウザの外に出した...
-
JavaScriptで特定のtdタグにcla...
-
数字の1文字目を消したい
-
onclickで画像と文字を別々の場...
-
クリックさせたいが、click()が...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
value内に変数を入れたい
-
UART通信の取説で,left floati...
-
javascriptでhiddenに二次元配...
-
hiddenのvalueの値を変えたい
-
VB.NET DateTimeの型について
-
テキストボックスに入力された...
-
CDOMailで本文テキストの文字コ...
-
setIntervalの間隔を途中で変更...
-
javascriptにてHTMLのhiddenエ...
-
ラジオボタンの選択で解答・点...
-
子から親へチェックボックスの...
-
フォームで入力した値を別のフ...
-
複数のsubmitボタンで押された...
-
selectboxのoptionタグのvalue...
-
Pythonで会員サイトの自動ログ...
-
クイズ作成:15個の問題から5個...
-
どのボタンがクリックされたの...
-
eval()を使わずに数値を取得し...
-
VBAをJavaScriptに変換したいです
-
ホームページビルダーのスクリ...
おすすめ情報