Cookieをテキストに表示したい



0   名前: 入門 : 2007/02/21(水) 01:56  ID:jGg/S9sY sub-Q5
<form name="frm">
 <input type="button" name="bookmark" value="追加" onclick="javascript:関数名('サイト名','サイトURL')"/>
 <input type="text" size="80" id="cookie" value="">
</form>
onclickの内容をCookieとしてテキストに表示したいのですが、追加をクリックする度にサイト名、サイトURLを重ならずに表示したいんです。
下記のコードで上手くいきません。。。
よろしくお願いします。


function myGetCookie(myCookie){
getCookie= myCookie + "=";
myValue = null;
myStr = document.cookie + ";" ;
myOfst = myStr.indexOf(myCookie);
if (myOfst != -1){
myStart = myOfst + getCookie.length;
myEnd = myStr.indexOf(";" , myStart);
myValue = unescape(myStr.substring(myStart,myEnd));
}
return myValue;

}
function in_bookmark(name,url){
site_name = myGetCookie('site_name');
site_url = myGetCookie('site_url');

document.cookie = "site_name=" + site_name + ":" + name;
document.cookie = "site_url=" + site_url + ":" url;
document.getElementById('cookie').value = document.cookie;
}

1   名前: 匿名 : 2007/02/21(水) 01:56  ID:rEkc4Z1y sub-kJ
理想とする形がよく分からないが、文字列を連結するだけで良いの?
document.getElementById('cookie').value += document.cookie;

もしそうでなければ、手始めに普通の文字列を追加する関数を作ってみては?そうすれば、後は Cookie データを引数として、その関数に渡してやれば良いだけになるし。


それよりも、気になる点が沢山ある。

・HTML と XHTML が混在している。どちらかに統一。
・onclick="javascript:関数名('サイト名','サイトURL')" ← onclick 属性の中で javascript: は不要。むしろ有害とすら言われているので今すぐ忘れるべし。
・escape/unescape 関数はとっくに廃止され、過去との互換性のためだけに残されている。新規にスクリプトを作る際に使うものではない。decodeURI/encodeURI を使うべし。

2   名前: 入門 : 2007/02/21(水) 01:56  ID:AxfG.8F6 sub-t1
1>ありがとうございます。

XHTML形式にきちんと書き換え、onclickの内容を一度文字列として変数に取り込み
その変数をcookieに食わせて連結させたら上手くいきました。

それと、escape/unescape をdecodeURI/encodeURI にするのは勉強になりました。

一覧へ戻る