サイドバーへのjavascript
<html><head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=SHIFT_JIS">
<HEAD>
<TITLE>カウントダウンカウントアップタイマー</TITLE>
<SCRIPT language="JavaScript">
<!--
//配列オブジェクト
function MakeArray(n) {
this.length = n;
for (var i = 1; i <= n; i++) {
this[i] = 0; }
return this;
}endDate= new MakeArray(1);
endDate[1]=new Date(1996,4,13,0,0,0);
function MyTimer(index,mode) {
/* made by Jupiter Software (http://www.nsknet.or.jp/~kamichan/) */ /* Countdown, Countup timers function for JavaScript */ /* mode=1 countdown mode=2 countup */var nowDate = new Date();
if (mode == 2){ times= Math.floor((-endDate[index].getTime()+nowDate.getTime())/1000); }
else { times= Math.floor((endDate[index].getTime()-nowDate.getTime())/1000);}
var days="";
var num =0;
num=(times % 60); /* sec */
days = ((num <10)&&(num>=0) ? "0" : "")+num+"秒 "+days;
times= ((times/60)<0 ? -1:1)*Math.floor(Math.abs(times /60));
num= (times % 60); /* min */
days =((num<10)&&(num>=0) ? "0" :"")+num+"分 "+days;
times= ((times/60)<0 ? -1:1)*Math.floor(Math.abs(times/60));
num = (times % 24); /* hour */
days=((num<10)&&(num>=0) ? "0" : "")+num+"時間 "+days;
num=((times/24)<0 ? -1:1)*Math.floor(Math.abs(times/24));
days=" "+num+"日 "+days;
if (index ==1 ) {document.frm.txt1.value=days;}
num=setTimeout("MyTimer("+index+","+mode+")",1000);
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<form name="frm">
誕生日から <input type="text" name="txt1" size=28>
</form>
<SCRIPT language="JavaScript">
<!--
MyTimer(1,2);
//-->
</SCRIPT>
</BODY>
</html>
これをサイドバーへ貼るにはどうすればよいですか
回答(2)
2.

これは、JavaScriptというより、単独で、webページを作るためのHTMLソースです。
プラグインは、独立したものではなく、ブログという形のwebページの一部です。
これを、そのまま使うと、ページの中にページができる形になり、矛盾が生じます。
まず、webページの骨組みとなるHTMLを除かなければなりません。
ページの開始を宣言する、頭の<html>から</TITLE>まで、
下のほうの</HEAD><BODY>(残しても動くかも知れませんが、本来は削除)
webページの終了を宣言する</BODY></html>
これで、どうにか、webページの途中でも使える形になりました。
少し整えて、
<center>
<SCRIPT language="JavaScript">
<!--
//配列オブジェクト
function MakeArray(n) {
this.length = n;
for (var i = 1; i <= n; i++) {
this[i] = 0; }
return this;
}
endDate= new MakeArray(1);
endDate[1]=new Date(1996,4,13,0,0,0);
function MyTimer(index,mode) {
var nowDate = new Date();
if (mode == 2){
times= Math.floor((-endDate[index].getTime()+nowDate.getTime())/1000);
}
else {
times= Math.floor((endDate[index].getTime()-nowDate.getTime())/1000);
}
var days="";
var num =0;
num=(times % 60); /* sec */
days = ((num <10)&&(num>=0) ? "0" : "")+num+"秒 "+days;
times= ((times/60)<0 ? -1:1)*Math.floor(Math.abs(times /60));
num= (times % 60); /* min */
days =((num<10)&&(num>=0) ? "0" :"")+num+"分 "+days;
times= ((times/60)<0 ? -1:1)*Math.floor(Math.abs(times/60));
num = (times % 24); /* hour */
days=((num<10)&&(num>=0) ? "0" : "")+num+"時間 "+days;
num=((times/24)<0 ? -1:1)*Math.floor(Math.abs(times/24));
days=" "+num+"日 "+days;
if (index ==1 ) {document.frm.txt1.value=days;}
num=setTimeout("MyTimer("+index+","+mode+")",1000);
}
//-->
</SCRIPT>
<form name="frm">
誕生日から <input type="text" name="txt1" size=22>
</form>
<SCRIPT language="JavaScript">
<!--
MyTimer(1,2);
//-->
</SCRIPT>
</center>
こんな感じのものを、「フリーエリア」プラグインに貼ることになります。回答ありがとうございます。「こんな感じのものを」と言う部分を全部コピペさせていただいて、フリーエリアに貼ったのですが、「誕生日から」の後がテキストフィールド(?)で、中身が何もない(カウントアップ表示が出ない)のです・・・どうしてでしょうか??
ほんとはテキストフィールドも付けたくないんですが、それは
無理なのでしょうか?
「誕生日から●日●時間●分●秒経過」と表示させたいんです。
1.

因に
誕生日から <input type="text" name="txt1" size=28>のsize=28のところですが、20ぐらいにした方がいいかと思います(28で設置してみて大きいようだったらここを適当に変えてください)
回答ありがとうございます。やってみたのですが、まだ上手く行かないようで・・・もうちょっと調べてみます
コメント(6)
うまく行かない場合は、コメントに書いてください。
解決できましたら、質問を、(解決済)にしておいてください。
http://knowledge.livedoor.com/5517 をご参考に
スイマセン。まだ解決済ではないのに間違えて「ベスト回答」を
選んでしまいました(T-T)
基本的に
<--!~~~~-->
の間は無効のコメント宣言なので
重要な計算式が無効になっている予感・・
フリーエリアの「改行設定」で「改行を<br/>タグに変換しない」で
設定したら、うまく行きました!
丁寧な回答をどうもありがとうございましたっ!!(><)
>>horsefly さま
まだまだ不勉強な部分が多くて(^^;)
丁寧なご回答をいただけたので、助かりました!
本当にありがとうございましたm(_ _)m


