JavaScriptのCookieについて



 ◇-?JavaScriptのCookieについて-し-05/02-07:54(327)-No.405228
   ┣?!Re:JavaScriptのCookieについて...-Acad(β)-05/02-10:13(324)-No.405233
   ┗?!Re:JavaScriptのCookieについて...-テツヤ-05/02-10:14(324)-No.405234
     ┗?!~ビヘイビアの実験...-テツヤ-05/02-21:42(313)-No.405306
       ┗?!~~Re:JavaScriptとCookieについ...-し-05/03-17:42(293)-No.405417
         ┗?!~~!Re:JavaScriptとCookieについ...-テツヤ-05/03-18:32(292)-No.405420
           ┗?!~~!!Re:JavaScriptとCookieにつ...-し-05/04-10:41(276)-No.405516
             ┣?!~~!!!Re:JavaScriptとCookieにつ...-テツヤ-05/04-16:21(270)-No.405546
             ┣?!~~!!!Test9.htm...-テツヤ-05/04-16:24(270)-No.405547
             ┣?!~~!!!Re:JavaScriptとCookieにつ...-テツヤ-05/04-16:45(270)-No.405549
             ┗?!~~!!!Re:JavaScriptとCookieにつ...-テツヤ-05/04-17:08(269)-No.405552
               ┣?!~~!!!-Re:JavaScriptとCookieに...-し-05/08-11:50(179)-No.406082
               ┗?!~~!!!【多分解決】Re:JavaScript...-し-05/08-17:02(173)-No.406101

▲このページのトップに戻る
405228JavaScriptのCookieについて2007/05/02-07:54

メーカー名:東芝
OS名:WindowsXp HomeEdition
パソコン名:PAEX522PDE3
使用回線:ADSL
--
IE6でJavaScriptを使用して、Cookieを利用したプログラムを初めて作成してみましたが。
保存できるDataの数が20個しか保存できません。

希望として231個のDataを保存したい。

(1)保存出来るDataを増やす方法は有りますか?
(2)JavaScriptでHDD等に保存する方法は有りますか?

▲このページのトップに戻る
405233Re:JavaScriptのCookieについてAcad(β) 2007/05/02-10:13

記事番号405228へのコメント
しさんは No.405228「JavaScriptのCookieについて」で書きました。

Cookieで調べたらこれがでてきました。
http://e-words.jp/w/Cookie.html

▲このページのトップに戻る
405234Re:JavaScriptのCookieについてテツヤ 2007/05/02-10:14

記事番号405228へのコメント
 そうですか20個ですか。そんな制限があるとは…。変ですね。
 あとはビヘイビアを利用してみては?。但しIEのみになります。
 あ、ActiveXを利用すればファイル保存も可能ですが。使い勝手に面倒が…「ActiveXを利用して…しますか」とか毎回ダイアログが出る。
 私のHTMLリファレンスを参考にしてもいいでしょう。クッキーをつかってウィンドウ情報を保存してます。20個もデータはないですが。
http://www.geocities.jp/tetuya630213/Script.htm
 ビヘイビアの例。上の文書の「HTML_R.lzh」のDHTMLの所に含まれる、MSの例。《
<html>
<head>
<style>
.userData {behavior:url(#default#userdata);}
</style>
<script for=window event=onload>
DoLoad();
</script>
<script for=window event=onbeforeunload>
DoSave();
</script>
<script>
function DoSave(){
foo.setAttribute("content", foo.innerHTML);
foo.save("EditContent");
}
function DoLoad(){
foo.load("EditContent");
content = foo.getAttribute("content");
if (content != null) foo.innerHTML=content;
}
function DoClear(){
foo.innerHTML = "";
}
</script>
</head>

<body>
<p align=center>
<button onClick='DoSave()'>Save</button>
<button onClick='DoClear()'>Clear</button>
<button onClick='DoLoad()'>Load</button>
</p>
<div id=foo class=userData contentEditable=true
style="width:100%;height:90%">
</div>
</body>
</html>
》この中の、《
.userData {behavior:url(#default#userdata);}
》の「#default#userdata」とすることに意味があるようで、PC内のどこかに保存されます。どこに保存されるかは忘れた。「1日以内に更新されたファイル」の条件で検索してみてください。

▲このページのトップに戻る
405306ビヘイビアの実験テツヤ 2007/05/02-21:42

記事番号405234へのコメント
 上記の例を試してみた。《
テストですテストですtesut
>と入力して[保存]クリック。
 1日以内に更新されたファイルを検索。
C:\WINDOWS\Application Data\Microsoft\Internet Explorer\UserData\O9QR85YR\EditContent[1].xml
のをIEで開いてみた。
 内容は《
<ROOTSTUB content="テストですテストですtesut" />
》でした。こんな感じに保存されます。
 因みに、notepadで開いてみたら文字化けしていた。
 一太郎で開いてみたら、どうやらUnicodeのようです。

▲このページのトップに戻る
405417Re:JavaScriptとCookieについて2007/05/03-17:42

記事番号405306へのコメント
テツヤさんは No.405306「ビヘイビアの実験」で書きました。

Acad(β)さんテツヤさん有難うございます。

通常の方法では大量のDataの保存は無理の様ですので
こんな事を考えています。

(1)CGIを利用出来ないか?
(2)Data個数が最大20個ならば、Dataをまとめる(連続)事は出来ないか。

名前1=値1;名前2=値2;ならば
名前A=値1+区切り記号+値2;・・・・・

CGIは全く経験が有りません、アドバイスが有りましたらお願いいたします。

▲このページのトップに戻る
405420Re:JavaScriptとCookieについてテツヤ 2007/05/03-18:32

記事番号405417へのコメント
 CGIはやったことはないのでわかりません。
 そもそもどうしてそんな20個ものクッキーというかファイルができるのですか?、クッキーの作り方が間違っているのでは?。
 ファイルパスを指定して作ればいいのでは?。私のHTMLリファレンスの
 kannkyou.jsの一部《 
//●----------
//処理:環境データの保存
//編集:2007.04.09 by 雨宮徹也
//呼出:KanSave()
function KanSave(){
var FPath=document.URLUnencoded; //「file://C:\My Documents\…\HTMLリファレンス\…」
var St=FPath.indexOf("/");
var En=FPath.lastIndexOf("\\");
En=FPath.lastIndexOf("\\",En-1);
var CPath=FPath.substring(St+1,En+1); //「/C:\My Documents\…\HTMLリファレンス\」
//window.status="KanSave:"+Kioku.status;
//setTimeout("window.status=''",500);
ND=new Date().getTime();
ND=ND+1000*60*60*24*30; //30日間記憶
SetCookie("Kioku",Kioku.status,new Date(ND),CPath);
if(Kioku.status==true){
window.status="ウィンドウ設定記憶";
setTimeout("window.status=''",500);
SetCookie("Width",top.document.body.clientWidth,new Date(ND),CPath);
SetCookie("Height",top.document.body.clientHeight,new Date(ND),CPath);
SetCookie("Left",top.window.screenLeft,new Date(ND),CPath);
SetCookie("Top",top.window.screenTop,new Date(ND),CPath);
}
}
》で、最初の所でパス名を作成しています。
 これで作ったクッキーは以下の様になりました。《
Kioku
true
~~local~~/C:\My Documents\Computer\HTMLリファレンス¶\HTMLリファレンス\
0
512774144
29861111
644105504
29855076
*
Width
746
~~local~~/C:\My Documents\Computer\HTMLリファレンス¶\HTMLリファレンス\
0
512774144
29861111
644105504
29855076
*
Height
304
~~local~~/C:\My Documents\Computer\HTMLリファレンス¶\HTMLリファレンス\
0
512774144
29861111
644605504
29855076
*
Left
4
~~local~~/C:\My Documents\Computer\HTMLリファレンス¶\HTMLリファレンス\
0
512774144
29861111
644605504
29855076
*
Top
77
~~local~~/C:\My Documents\Computer\HTMLリファレンス¶\HTMLリファレンス\
0
512774144
29861111
645205504
29855076
*
KenStr
%u66F8%u4F53
~~local~~/C:\My Documents\Computer\HTMLリファレンス¶\HTMLリファレンス\
0
3807676032
29861108
3941707392
29855073
*
KenMojKub
false
~~local~~/C:\My Documents\Computer\HTMLリファレンス¶\HTMLリファレンス\
0
3807676032
29861108
3942307392
29855073
*

▲このページのトップに戻る
405516Re:JavaScriptとCookieについて2007/05/04-10:41

記事番号405420へのコメント
テツヤさんは No.405420「Re:JavaScriptとCookieについて」で書きました。

テツヤさん有難うございます。

(1)今回、Cookieの本来の使用方法と異なる事をやってみました。
(2)Excelで横棒グラフを作成すような事をIE6でやろうとしています。

(3)25行3列の表をinput文で作成します。
(4)1列目をグラフの項目とし、文字DataをValueに入力します。
(5)2列目をグラフの開始位置とし、数値Dataを入力します。
(6)3列目をグラフの長さとし、数値Dataを入力します。
(7)開始位置、長さはJavaScriptとCSSのleft,Widthで制御します。
(8)再利用の為、夫々のDataをどこかに記憶させる必要がある。
(9)他の人も利用する為、プログラムを書き換える事は出来ない。

(10)上記の様な表を3枚用意してJavaScriptとCSSのZ-indexで制御する。
(11)Excelでのシートの切り替えの様な事です。

基本的には上記の様な事を考え、Data保存先として、まず、Cookieを思い付いた訳です。

(12)そこで、CGS、Cookieへの保存方法の検討と為ったわけです。



▲このページのトップに戻る
405546Re:JavaScriptとCookieについてテツヤ 2007/05/04-16:21

記事番号405516へのコメント
 ちょっと作ってみた。でもクッキーに記憶されなくなってしまったので変。
 Cookie.js《
//●
//処理:1つのクッキー・データを設定する
//編集:2006.09.26 by T.A.
//呼出:SetCookie(Name,Value,Expires,Path,Domain,Secure)
//引数:Name=クッキー名(半角英数)。
// Value=クッキー・データ(任意の文字列。半角英数〜漢字)。
// Expires=クッキーの有効期限(日付)。省くと、期限はブラウザを閉じるまで。
// Path=パス。例="/tetuya630213"など。
// Domain=ドメイン名。例="blog.livedoor.jp"など。
// Secure= true=セキュリティの保たれた環境でなければアクセスできないようにする。←→false。
function SetCookie(Name,Value,Expires,Path,Domain,Secure){
var S=Name+"="+escape(Value)
+(Expires?"; expires="+Expires.toGMTString():"")
+(Path?"; path="+Path:"")
+(Domain?"; domain="+Domain:"")
+(Secure?"; secure":"");
document.cookie=S;
}

//●
//処理:1つのクッキー・データを得る
//編集:2006.10.22 by T.A.
//呼出:変数=GetCookie(Name)
//引数:Name=クッキー名。省くと全て取得。
function GetCookie(Name){
if(!Name)return unescape(document.cookie);
var CNP=Name+"=";
var C=document.cookie;
var SF=C.indexOf(CNP);
if (SF==-1)return ""; //クッキーが見つからない。又はデータが""の為にクッキー名のみになっている。
var SF2=C.indexOf(";",SF+CNP.length);
if (SF2==-1)SF2=C.length; //データが1個の場合、「;」は無い。
return unescape(C.substring(SF+CNP.length,SF2));
}

//●
//処理:1つのクッキー・データを削除する
//編集:2006.09.26 by T.A.
//呼出:変数=DeleteCookie(Name,Path,Domain)
//引数:Name=クッキー名。
// Path=パス。例="/tetuya630213"など。
// Domain=ドメイン名。例="blog.livedoor.jp"など。
function DeleteCookie(Name,Path,Domain){
if(GetCookie(Name))document.cookie=Name+"="
+(Path?"; path="+Path:"")
+(Domain?"; domain="+Domain:"")
+"; expires="+new Date(0).toGMTString(); //過去の日付
}

▲このページのトップに戻る
405547Test9.htmテツヤ 2007/05/04-16:24

記事番号405516へのコメント
<HTML>
<HEAD>
<TITLE>Test9</TITLE>
<META http-equiv="content-type" content="text/html; charset=shift_jis">
<META http-equiv="Content-Style-Type" content="text/css">
<META http-equiv="Content-Script-Type" content="text/javascript">
<SCRIPT src="Test9/Cookie.js"></SCRIPT>
</HEAD>

<BODY>
<TABLE border=1 cellspacing=0>
<THEAD><TR><TH>項目 <TH>開始位置<TH>長さ</THEAD>
<TBODY id=Gurafu1>
<TR><TD>Data1 <TD>0 <TD>4
<TR><TD>Data2 <TD>5 <TD>34
<TR><TD>Data3 <TD>10 <TD>48
<TR><TD>Data4 <TD>15 <TD>84
<TR><TD>Data5 <TD>20 <TD>57
<TR><TD>Data6 <TD>25 <TD>24
<TR><TD>Data7 <TD>30 <TD>10
<TR><TD>Data8 <TD>35 <TD>84
<TR><TD>Data9 <TD>40 <TD>29
<TR><TD>Data10 <TD>45 <TD>94
<TR><TD>Data11 <TD>50 <TD>80
<TR><TD>Data12 <TD>55 <TD>62
<TR><TD>Data13 <TD>60 <TD>37
<TR><TD>Data14 <TD>65 <TD>57
<TR><TD>Data15 <TD>70 <TD>26
<TR><TD>Data16 <TD>75 <TD>32
<TR><TD>Data17 <TD>80 <TD>14
<TR><TD>Data18 <TD>85 <TD>39
<TR><TD>Data19 <TD>90 <TD>98
<TR><TD>Data20 <TD>95 <TD>32
<TR><TD>Data21 <TD>100 <TD>20
<TR><TD>Data22 <TD>105 <TD>39
<TR><TD>Data23 <TD>110 <TD>57
<TR><TD>Data24 <TD>115 <TD>73
<TR><TD>Data25 <TD>120 <TD>49
</TBODY>
</TABLE>

<BUTTON onclick="SaveData()">データ保存</BUTTON>
<BUTTON onclick="DeleteTableData()">表データ消去</BUTTON>
<BUTTON onclick="LoadData()">データ読み込み</BUTTON>

<SCRIPT><!--
var TBA=Gurafu1.rows;
var I,DName,Pos,Leng;
document.write("<DIV style=\"position:absolute; left:200px; top:10px; z-index:1\">");
for(I=0; I<TBA.length; I++){
DName=TBA[I].cells[0].innerText;
Pos=TBA[I].cells[1].innerText;
Leng=TBA[I].cells[2].innerText;
document.write("<SPAN style=\"position:absolute; left:0px; top:"+(Pos*4)+"px\">"+DName+"</SPAN>");
document.write("<IMG src=\"Test9/Bar1.bmp\" style=\"position:absolute; left:50; top:"+(Pos*4)+"px; width:"+Leng+"px; height:4px\">");
}
document.write("</DIV>");

function SaveData(){
var TBA=Gurafu1.rows;
var I,DName,Pos,Leng,ND,D;
ND=new Date().getTime();
ND=ND+1000*60*60*24*30; //30日間記憶
var FPath=document.URLUnencoded; //「file://C:\My Documents\…」
var St=FPath.indexOf("/");
// var En=FPath.lastIndexOf("\\");
// En=FPath.lastIndexOf("\\",En-1);
var CPath=FPath.substring(St+1,FPath.length); //「/C:\My Documents\…」
CPath="";//alert(CPath);
for(I=0; I<TBA.length; I++){
DName=TBA[I].cells[0].innerText;
Pos=TBA[I].cells[1].innerText;
Leng=TBA[I].cells[2].innerText;
D={"Pos":Pos,"Leng":Leng};
SetCookie(DName,D,new Date(ND),CPath);
}
}

function DeleteTableData(){
var TBA=Gurafu1.rows;
for(I=0; I<TBA.length; I++){
TBA[I].cells[0].innerText=" ";
TBA[I].cells[1].innerText=" ";
TBA[I].cells[2].innerText=" ";
}
}

function LoadData(){
var TBA=Gurafu1.rows;
// for(I=0; I<TBA.length; I++){
// }
}

//--></SCRIPT>

</BODY>
</HTML>

▲このページのトップに戻る
405549Re:JavaScriptとCookieについてテツヤ 2007/05/04-16:45

記事番号405516へのコメント
 クッキーが観れるようになりました。内容を観たら、Data6から記録されていました。これが「20」の制限かな。
 こうなったら1データにまとめるしかないな。

▲このページのトップに戻る
405552Re:JavaScriptとCookieについてテツヤ 2007/05/04-17:08

記事番号405516へのコメント
 データをセミコロン「;」で繋げて1つのデータとしてクッキーに書き込みました。データは3表分必要なんですよね。できると思うけど。《
<HTML>
<HEAD>
<TITLE>Test9</TITLE>
<META http-equiv="content-type" content="text/html; charset=shift_jis">
<META http-equiv="Content-Style-Type" content="text/css">
<META http-equiv="Content-Script-Type" content="text/javascript">
<SCRIPT src="Test9/Cookie.js"></SCRIPT>
</HEAD>

<BODY>
<TABLE border=1 cellspacing=0>
<THEAD><TR><TH>項目 <TH>開始位置<TH>長さ</THEAD>
<TBODY id=Gurafu1>
<TR><TD>Data1 <TD>0 <TD>4
<TR><TD>Data2 <TD>5 <TD>34
<TR><TD>Data3 <TD>10 <TD>48
<TR><TD>Data4 <TD>15 <TD>84
<TR><TD>Data5 <TD>20 <TD>57
<TR><TD>Data6 <TD>25 <TD>24
<TR><TD>Data7 <TD>30 <TD>10
<TR><TD>Data8 <TD>35 <TD>84
<TR><TD>Data9 <TD>40 <TD>29
<TR><TD>Data10 <TD>45 <TD>94
<TR><TD>Data11 <TD>50 <TD>80
<TR><TD>Data12 <TD>55 <TD>62
<TR><TD>Data13 <TD>60 <TD>37
<TR><TD>Data14 <TD>65 <TD>57
<TR><TD>Data15 <TD>70 <TD>26
<TR><TD>Data16 <TD>75 <TD>32
<TR><TD>Data17 <TD>80 <TD>14
<TR><TD>Data18 <TD>85 <TD>39
<TR><TD>Data19 <TD>90 <TD>98
<TR><TD>Data20 <TD>95 <TD>32
<TR><TD>Data21 <TD>100 <TD>20
<TR><TD>Data22 <TD>105 <TD>39
<TR><TD>Data23 <TD>110 <TD>57
<TR><TD>Data24 <TD>115 <TD>73
<TR><TD>Data25 <TD>120 <TD>49
</TBODY>
</TABLE>

<BUTTON onclick="SaveData()">データ保存</BUTTON>
<BUTTON onclick="DeleteTableData()">表データ消去</BUTTON>
<BUTTON onclick="LoadData()">データ読み込み</BUTTON>

<SCRIPT><!--
var TBA=Gurafu1.rows;
var I,DName,Pos,Leng;
document.write("<DIV style=\"position:absolute; left:200px; top:10px; z-index:1\">");
for(I=0; I<TBA.length; I++){
DName=TBA[I].cells[0].innerText;
Pos=TBA[I].cells[1].innerText;
Leng=TBA[I].cells[2].innerText;
document.write("<SPAN style=\"position:absolute; left:0px; top:"+(Pos*4)+"px\">"+DName+"</SPAN>");
document.write("<IMG src=\"Test9/Bar1.bmp\" style=\"position:absolute; left:50; top:"+(Pos*4)+"px; width:"+Leng+"px; height:4px\">");
}
document.write("</DIV>");

function SaveData(){
var TBA=Gurafu1.rows;
var I,DName,Pos,Leng,ND,D;
DName="Gurafu1";
ND=new Date().getTime();
ND=ND+1000*60*60*24*30; //30日間記憶
var FPath=document.URLUnencoded; //「file://C:\My Documents\…」
var St=FPath.indexOf("/");
// var En=FPath.lastIndexOf("\\");
// En=FPath.lastIndexOf("\\",En-1);
var CPath=FPath.substring(St+1,FPath.length); //「/C:\My Documents\…」
CPath="";//alert(CPath);
var D="";
for(I=0; I<TBA.length; I++){
D=D+TBA[I].cells[0].innerText+";";
D=D+TBA[I].cells[1].innerText+";";
D=D+TBA[I].cells[2].innerText+";";
}
SetCookie(DName,D,new Date(ND),CPath);
}

function DeleteTableData(){
var TBA=Gurafu1.rows;
for(I=0; I<TBA.length; I++){
TBA[I].cells[0].innerText=" ";
TBA[I].cells[1].innerText=" ";
TBA[I].cells[2].innerText=" ";
}
}

function LoadData(){
var TBA=Gurafu1.rows,PS=0;
D=GetCookie("Gurafu1");
for(I=0; I<TBA.length; I++){
P=D.indexOf(";",PS);
TBA[I].cells[0].innerText=D.substring(PS,P); PS=P+1;
P=D.indexOf(";",PS);
TBA[I].cells[1].innerText=D.substring(PS,P); PS=P+1;
P=D.indexOf(";",PS);
TBA[I].cells[2].innerText=D.substring(PS,P); PS=P+1;
}
}

//--></SCRIPT>

</BODY>
</HTML>

▲このページのトップに戻る
406082Re:JavaScriptとCookieについて2007/05/08-11:50

記事番号405552へのコメント
テツヤさんは No.405552「Re:JavaScriptとCookieについて」で書きました。
テツヤさん有難うございます。

・参考にさせて頂きました。
・保存関係は之で何とかクリアー出来そうです。
・今は同じプログラム内ですがsortの所でつまずいています。

▲このページのトップに戻る
406101Re:JavaScriptとCookieについて2007/05/08-17:02

記事番号405552へのコメント
テツヤさんは No.405552「Re:JavaScriptとCookieについて」で書きました。

テツヤさん有難うございました。

・プログラムが全ての完成した訳でないので正確には言えませんが
保存は行けると思います。
・ただ心配な事もあります・・・
・保存が安定なのか・・・何かの関係で削除される(保存期間関係でなく)
事はないのか?

・前回も記載しましたが、SORTでつまずいています。

A1.本ページは参考になりましたか? 又はアドバイスがありますか?
解決 参考になった 参考にならなかった アドバイスする

A2.何度目の訪問ですか?
初めて来た   数度目(2〜4) 5回以上来ている   管理人:

A3.何か一言どうぞ(アドレスは書くことができません)

A4.アドレスがあればどうぞ(1つまで)


↑↑↑↑よろしければ押してください↑↑↑↑

何か一言(本ページで参考になったならないを含めて残してあります)
◎:解決 ○:参考になった ×:参考にならなかった !:アドバイスあり

参考回数投稿日時何か一言