アプリ版:「スタンプのみでお礼する」機能のリリースについて

毎日15時になったら
parent.frames("A1").location.href = "2-A.html"
parent.frames("B1").location.href = "2-Aクリック.html"
を行いたい。というJavascriptを組みたいのですが、全く謎に包まれてきました。
色んな所で調べながらで調べながら自分なりに下記の様に作ってみたんですが…良くわからなくなってしまいました…
なんとかタイマーらしくカウントダウンはするんですが、時間を過ぎると白紙になってしまいます…
なんとか助けていただけないでしょうか?

<body>
<p align="center" class="style1">
発射まで<input type="text" name="tm2" size="1">時間<input type="text" name="tm2" size="1">分<input type="text" name="tm2" size="1">秒</p>
<script type="text/javascript">

var CountDownGenerator = function (y, m, d, hh, mm, ss) {
 var t = new Date(y, m-1, d, hh || 0, mm || 0, ss || 0);
 var s = y + '年' + m + '月' + d + '日' +
  (undefined === hh ? '': hh + '時') +
  (undefined === mm ? '': mm + '分') +
  (undefined === ss ? '': ss + '秒');
 return function () {
  var sa = t - (new Date);
  sa = sa / 1000 |0;
  if (sa<0) return { end: true };
  var ss = sa % 60; sa = sa / 60 |0;
  var mm = sa % 60; sa = sa / 60 |0;
  var hh = sa % 24; sa = sa / 24 |0;
  var dd = sa;
  return {
   day: dd, hours: hh, minutus: mm, seconds:ss, str:s, end:false
  };
 };
 }

var Viewer = function (c, nm) {
  var txt = document.getElementsByName(nm);
 
 return function() {
  var time = c();
  if (time.end) return
  txt[0].value = time.hours;
  txt[1].value = time.minutus;
  txt[2].value = time.seconds;
  setTimeout( arguments.callee, 1000);
 }();
};

var hiduke = new Date();
var myyear = hiduke.getYear(); // 年
var mymonth = hiduke.getMonth() + 1; // 月
var myday = hiduke.getDate(); // 日
var myhour = hiduke.getHours(); // 時
var mymin = hiduke.getMinutes(); // 分
var mysec = hiduke.getSeconds(); // 時

//--------実際に実行する時間---
var hahour = '15';// 時
var hamin = '00';// 時// 分
var hasec = '00';// 時
//-----------------------------
var jikkou = CountDownGenerator(myyear, mymonth, myday, hahour,hamin,hasec);
Viewer(jikkou, 'tm2');

if(!jikkou << hiduke){
parent.frames("A1").location.href = "2-A.html"
parent.frames("B1").location.href = "2-Aクリック.html"

}

//-->
</script>

A 回答 (6件)

おは~。

ながめてたら、それを、かいたのおれじゃん!ってことで。
なんかいけてないようなきがする~。
ほんとは、すうちのちぇっくしなきゃね~ ばぶばぶばぶぅ~

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<title>かうんとだうんして、なにかする</title>

<p align="center">
発射まで
<input type="text" name="tm2" size="1">時間
<input type="text" name="tm2" size="1">分
<input type="text" name="tm2" size="1">秒
</p>
<script type="text/javascript">

var CountDownGenerator = function (y, m, d, hh, mm, ss) {

 var t = new Date(y, m-1, d, hh || 0, mm || 0, ss || 0);
 var s = y + '年' + m + '月' + d + '日' +
  (undefined === hh ? '': hh + '時') +
  (undefined === mm ? '': mm + '分') +
  (undefined === ss ? '': ss + '秒');

 return function () {
  var sa = t - (new Date);
  sa = sa / 1000 |0;
  if (sa<0) {
   return { end: true };
  }
  var ss = sa % 60; sa = sa / 60 |0;
  var mm = sa % 60; sa = sa / 60 |0;
  var hh = sa % 24; sa = sa / 24 |0;
  var dd = sa;

  return {
   day: dd, hours: hh, minutus: mm, seconds:ss, str:s, end:false
  };
 };
};


var EveryTime = function (y, m, d, hh, mm, ss) {

 var now = new Date;

 if (y === '') y = now.getFullYear();
 if (m === '') m = now.getMonth() + 1;
 if (d === '') d = now.getDate();
 if (hh === '') hh = now.getHours();
 if (mm === '') mm = now.getMinutes();
 if (ss === '') ss = now.getSeconds();

 return CountDownGenerator(y, m, d, hh, mm, ss);
}


var Viewer = function (c, nm, func) {

 var txt = document.getElementsByName(nm);

 return function() {
  var time = c();
  if (time.end) return func();//ここ
  txt[0].value = time.hours;
  txt[1].value = time.minutus;
  txt[2].value = time.seconds;
  setTimeout( arguments.callee, 1000);
 }();
};


var func = function () {
 alert("なにかする?");
}


var jikkou = EveryTime('','','',15,0,0);//0と''は違う
Viewer(jikkou, 'tm2', func);

</script>

この回答への補足

最高です!!出来ました!!!ありがとうございます!!!

補足日時:2009/07/27 20:45
    • good
    • 0
この回答へのお礼

ややこしい質問ですいません…(T△T)
一度↑を参考にチャレンジしてみます!!また結果を報告に来ます!!何度もありがとうございます!!

お礼日時:2009/07/27 19:27

function counter(){


if (15 != (new Date).getHours()) {
setTimeout(counter, 1000);
return;
}
parent.frames("A1").location.href = "2-A.html";
parent.frames("B1").location.href = "2-Aクリック.html";
};
counter();

かんちがいさせてしまったのなら、ごめんなさい
1びょうおきに、じかんをしらべているのだから
15じになったじてんで、やめればよいとおもっただけ
いんたーばるたいまーをやめさせるには、たいまーIDを
どこかにほぞんしてないといけない。
それもめんどうなので、うえのれい。
    • good
    • 0

ばぶさんのご指摘を元に修正しました。


1000だと15時00分00秒から15時00分59秒までの間、プログラムが動作し続けますねw

<script type="text/javascript">
<!--
function counter(){
d = new Date();
H = d.getHours();
M = d.getMinutes();
if(H==15 && M==0){
parent.frames("A1").location.href = "2-A.html";
parent.frames("B1").location.href = "2-Aクリック.html";
}
}

setInterval('counter()',60000);

質問者様は、ここを見ているのでしょうか。
    • good
    • 0

15時ちょうどかと思ってましたw

    • good
    • 0

それならば、「ふん」をも、みるひつようがないじょ^^;

    • good
    • 0

カウントダウンいりますか?


いらなければここまで簡潔にまとまりますけど。
<script type="text/javascript">
<!--
function counter(){
d = new Date();
H = d.getHours();
M = d.getMinutes();
if(H==15 && M==0){
parent.frames("A1").location.href = "2-A.html";
parent.frames("B1").location.href = "2-Aクリック.html";
}
}

setInterval('counter()',1000);
//-->
    • good
    • 0
この回答へのお礼

こんなにも簡単にまとまるんですね?正直カウントダウンは必要ないです(汗)
中々WEBを見る事が出来なくレスが遅くなってすいません。

お礼日時:2009/07/27 19:28

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