window.openとanchorで表示が違ってしまいます

[上に] [前に] [次に]
とこやん 1999/08/03(火) 14:35:32
皆様こんにちわ。

(1)window.open("*.htm",name)を用いてページを開いた時と、
普通に(2)<a href="*.htm">でページを開いた時の、表示の違いで困っております。

*.htmは
<body>
<script>
 document.write("わんばんこ");document.close();
</script>
こんばんわ
</body>
と、ごくごく単純なものになっております。

これを開いた時に、
(2)<a href=*.htm>の場合は
わんばんこ こんばんわ
となるのですが、
(1)window.openの場合は
こんばんわ
だけの表示になってしまいます。

しかも(1)では、*.htmが開いた瞬間は「わんばんこ こんばんわ」と表示がされているのですが、
なぜか0.5秒後くらいに「こんばんわ」と切り換わってしまいます。

こんなことは初めてです。
あ、申し遅れましたが、この現象はNN4.0でのみ発生してまして、IE5.0では出てません。
(しかしIE5.0ではgetCookieが出来なくて、これはこれで使えないんです、、、)

どなたかこのような現象を体験した方がいらっしゃいましたら、お力をお借りできないでしょうか。
宜しくお願い致します。

Mugi [E-Mail] [HomePage] 1999/08/03(火) 16:36:24
スクリプトがあるファイルにwriteで書き出すときはdocument.close()は不要ですね。

getCookieは関数のソースを見ないと使えない原因がわかりません。

とこやん 1999/08/03(火) 19:50:35
Mugiさん、ありがとうございます!!

>スクリプトがあるファイルにwriteで書き出すときはdocument.close()は不要ですね。

し、知らなかった。。。
消してみたら、さくさくぅーっと動きました。
ほんっと、Mugiさん感謝です!!

そこで調子に乗って、getCookieの質問なんですが、
スクリプトはこのような感じです。

<script language="javascript">
<!--
var mozi = "";

//Cookieから指定されたデータを抜き出す
function getCookie(key, tmp1, tmp2, xx1, xx2, xx3) {
 tmp1 = " " + document.cookie + ";";
  xx1 = xx2 = 0;
  len = tmp1.length;
  while (xx1 < len) {
   xx2 = tmp1.indexOf(";", xx1);
   tmp2 = tmp1.substring(xx1 + 1, xx2);
   xx3 = tmp2.indexOf("=");
   if (tmp2.substring(0, xx3) == key) {
    return(unescape(tmp2.substring(xx3 + 1, xx2 - xx1 - 1)));
   }
   xx1 = xx2 + 1;
  }
  return("");
}

function test() {
 mozi = getCookie("wahaha");
 //mozi = "わんばんこ";
 return mozi;
}
//-->
</script>

んでもって、bodyは
<body bgcolor="#FFFFFF">
<script>
 document.write(test());
</script>
こんばんわ
</body>

こんな感じです。
getCookieは、とほほさんのをそのまま利用させて頂いているので、
これ自体に問題は無さそうなんですが。。。

長くなってしまい申し訳ないです。
宜しくお願い致します。

Mugi [E-Mail] [HomePage] 1999/08/03(火) 21:16:18
このソース、インデントがすべて全角スペースになってますね。
実際のスクリプトでも全角スペースなら半角スペースやタブになおしてください。

とこやん 1999/08/04(水) 08:25:18
Mugiさん、おはようございます。

ご指摘のインデントについてですが、実際はタブで記述しております。
注意書きも何も無く、申し訳有りませんでした。

Mugi [E-Mail] [HomePage] 1999/08/04(水) 13:31:54
確認しますが、getCookieでCOOKIEの内容を読み出せないんですよね。
COOKIEが存在しているかは確認してみましたか?
alert(document.cookie)を使って「wahaha=〜」が含まれているか確認してみてください。

とこやん 1999/08/04(水) 17:20:11
[[解決]]
Mugiさん、こんにちわ。いつもいつもすみません。

早速、alert(document.cookie)を使って確認してみました。
すると確かに「wahaha=〜」は含まれておりました。
しかし、相対パスでgetCookieするページを開いた時には確かに含まれていたのですが、
絶対パスでページを開いた時にはundefinedとなってしまいます。。。
(ページは正常に表示されるんですが)

なぜクライアントのクッキーデータを取得するだけの事に、
相対パス、絶対パスが関係するのでしょうか???
もう、ここ1週間は涙、涙の毎日です。。。

ただ、window.openとanchorについてはMugiさんに解決して頂きましたので、
済マークをつけることに致します。
ありがとうございました。

[上に] [前に] [次に]