激凹みから立ち直る方法

これなんですが、firefoxIE6とどれも効いてくれないのですが、なぜなんでしょうか?
僕の設定がおかしいのでしょうか。
head内に設置しているんですが、どうすれば効いてくれるようになるんでしょうか?

<script type="text/javascript">
<!--
//ページ読み込み時に発生する。(bodyのonLoadイベントで呼び出し)
function init() {
//クッキー取得処理を呼び出し、戻り値をcoocに代入
var cooc = getCookie();
//戻り値がOKの場合はクッキーが存在するのでb.htmlに飛ばす
if (cooc == "OK") {
location.href="b.htm";
}

}
//クッキー取得(取得できればOK、できなければNGを返す)
function getCookie(){
//当日日付取得
var today = new Date().getTime();
//クッキー取得
var doc = document.cookie+";".indexOf("test=");
//クッキーが取得できなければindexOfで-1が返されるのでif文で判別
if(doc != -1){
return("OK");
} else {
//取得できなければクッキーを食べさせる。(expires=有効期限)
document.cookie = "test=1;expires="+new Date(today + (60 * 60 * 24 * 1000 * 1));
return("NG");
}
return("");
}

//-->
</script>

A 回答 (1件)

どこから突っ込めばよいのか‥。



まず、質問者さんの提示されているgetCookie関数ですが
これではcookieの値は取得できません。
下記サイトなどを参考にしてみてください。
まるっきり違うことが分かるかと思います。
http://www9.plala.or.jp/oyoyon/html/script/cooki …

何を参考にされたのかは存じませんが
参考にしたのは「クッキーの取得」ではなく、「クッキーが存在するかどうか」ではないですか?
ただ「クッキーが存在するかどうか」すらできない間違った関数となっていますが‥

> var doc = document.cookie+";".indexOf("test=");
 ↓
var doc = document.cookie.indexOf("test=");

こうすればクッキーが存在するかどうか(正確にはクッキーに"test="が存在するかどうか)が
判定できるようになります。
    • good
    • 0
この回答へのお礼

ありがとうございます。
初心者の為、面倒な質問をするかもしれませんが、よろしくお願い致します。

当方のしたいことなんですが、2回目以降はCSSを書き換えさせることが目的です。そのため、取得まではできなくても、存在するかどうかをチェックし、OKだった場合、CSSを変更という感じです。


<script type="text/javascript">
<!--
function init() {
var cooc = getCookie();
if (cooc == "OK") {
window.onload = function() {
document.getElementById("form_line").style.display = "none";
}
}
}
function getCookie(){
var today = new Date().getTime();
var doc = document.cookie.indexOf("test=");
if(doc != -1){
return("OK");
} else {
document.cookie = "test=1;expires="+new Date(today + (60 * 60 * 24 * 1000 * 1));
return("NG");
}
return("");
}
//-->
</script>

これでもまだできないんですが、単純に、test=というクッキーを保存すれば、チェックができるんでしょうか?
作り直した方が早いのでしょうが、その技術力がない為、これを改造するしか手段がない状態です。

すいませんが、お願い致します。

お礼日時:2009/12/13 22:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!