cgi(Perl)スクリプト内でのJavaScriptの記述方法
[上に]
[前に]
[次に]
真樹
[E-Mail]
1999/11/09(火) 00:11:14
掲示板のアクセスログを取ろうと考えています。
ログ取りのcgiは用意いたしました。
呼び出しをJavaScriptでimgとして行うタイプです。
ところが、掲示板の適所に記述をしたつもりのですが、JavaScriptが読み込まれていないようです。
どこを変えればよいかお教えください。
以下に呼び出し部前後を添付いたします。
print "Content-type: text/html\n\n";
print "<html><head><title>$title</title></head>\n";
print "$body\n";
print "<script language=\"JavaScript\"><!-- document.write('<img src=\"cgi-bin/accesslog.cgi?' + document.referrer + '\" width=1 height=1>'); // --></script><noscript><img src=\"cgi-bin/accesslog.cgi\" width=1 height=1></noscript>";
print "$title\n";
よろしくお願いいたします。
真樹
[E-Mail]
1999/11/09(火) 00:14:39
JavaScriptのところが長くて読みづらくなってしまいました。
スクリプトの途中で切って良いものかわからなかったので、
あのような形になっております。
さくらいゆずる
1999/11/09(火) 00:38:41
一行で記述されているため、「<!--」以降のJavaScriptの記述が
コメントとみなされているのでは?
私は
print <<"_JS_";
<script language="JavaScript"><!--
document.write('<img src="cgi-bin/accesslog.cgi?' + document.referrer + '" width=1 height=1>');
// --></script>
<noscript><img src="cgi-bin/accesslog.cgi" width=1 height=1></noscript>
_JS_
て感じの書き方が好きです。楽なので。
J.Naka
1999/11/09(火) 00:44:17
上のPerlのprint出力(標準出力)をコンソロールなどに掃き出させて、JavaScriptコードとして正しいか確認してみると良いと思います。
#自分も過去に、Print文に書く、JavaScriptコードが所定の形にならなくて苦労した事ありやす。
バーチャルヒューマン
[HomePage]
1999/11/09(火) 10:15:24
>一行で記述されているため、「<!--」以降のJavaScriptの記述が
>コメントとみなされているのでは?
私も、cgiがらみじゃないですが、こんな経験ありました。確か、さくらいゆずるさん
のおっしゃる通り!
記憶薄ではありますが、こんな風に試すと
↓
<script language="JavaScript">
<!-- document.write("abc");
document.write("123");
//--></script>
結果は、"123" だけが表示されます。
つまり、"<!--" のある行は、コメントアウトされてしまうのでしょう?!
真樹
[E-Mail]
1999/11/10(水) 00:13:50
[[解決]]
みなさんありがとうございます。
アドバイス通り記述させていただきました。
無事動作が確認できました。
ありがとうございました。
P.S.
掲示板自体がcgiなのでしょうがないのでしょうが、
リロードや書き込み後のsubmitでもカウントアップしてしまいます。
これは(私の技術で出来るかどうかは別として)ロジック変更or記述方法で何とかなりそうですが、
ブラウザの "戻る"ボタンですらカウントアップしてしまうのは、どうすればいいのかさっぱりわかりません。
これは諦めるしかないのでしょうかね・・・。
[上に]
[前に]
[次に]