• ベストアンサー

JavaScriptを使って毎日決まった時間に同じ作業を繰り返し行うには?

毎日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>

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

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

don191969
質問者

お礼

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

don191969
質問者

補足

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

その他の回答 (5)

回答No.6

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を どこかにほぞんしてないといけない。 それもめんどうなので、うえのれい。

  • t_netbug
  • ベストアンサー率34% (15/44)
回答No.5

ばぶさんのご指摘を元に修正しました。 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); 質問者様は、ここを見ているのでしょうか。

  • t_netbug
  • ベストアンサー率34% (15/44)
回答No.4

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

回答No.3

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

  • t_netbug
  • ベストアンサー率34% (15/44)
回答No.2

カウントダウンいりますか? いらなければここまで簡潔にまとまりますけど。 <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); //-->

don191969
質問者

お礼

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

関連するQ&A

  • JavaScript フレーム

    Javascriptをふたつ書くことはできないんですか? 2つ書いたら「い」のほうしか宣言されないんでどうしたらよろしいですか? Update.java,kensaku2.java syouhin_kensaku.html,syouhin_master.html <html> <head> <title>メニュー</title> </head> <body> <script type="text/javascript"> <!-- function jump(){ // 設定開始(表示するフレーム名とリンク先URLを設定してください) parent.hakusi.location.href = "syouhin_kensaku.html"; parent.hakusi2.location.href = "Update"; // 設定終了 } // --> </script> <a href="#" onClick="jump(); return false;">あ</a> <br> <br> <script> <!-- function jump(){ parent.hakusi.location.href = "syouhin_master.html"; parent.hakusi2.location.href = "kensaku2"; //設定終了 } // --> </script> <br> <a href="#" onClick="jump(); return false;">い</a> <br> <br> </body> </html>

  • 時間の計算の方法

    2つのStr(time1、time2)に「yyyy/mm/dd hh:mm:ss」の形で データが入っていて、time2 - time1をtime3に「hh:mm:ss」に フォーマットして入れたいのですが、 VBの場合、  new1 = CDate(time1)  new2 = CDate(time2)  new3 = new2 - new1  time3 = Format(new3, "hh:mm:ss") で可能だと思いますが、ASPの場合はどのようにすればいいのですか? Formatを認識しないらしく、文字化けしてしまうので、 どなたか教えてください。よろしくお願いします。 まだASP歴、3日目なもので。。。。

  • NN4.7で、javascriptからのjavaの関数の呼び出し

    javaのアプレットの関数を、javascriptから呼び出して、検索結果を文字列として返し、 document.writeで、別のフレームに結果を書き出すというアプレットを作成しています。 それで、実行してみると、IE6,NN7では動作確認できましたが、NN4.7では、実行できませんでした。 ソースとしてどこかおかしいでしょうか? ------------javascript部分ソース----------- <HTML><HEAD> <script language="JavaScript"> <!-- function doSrch(fm) { var ss =""; ss = document.applets[0].execSrch(fm.SrchTxt.value); //ここで、document.applets[0]がないといわれる... if (ss == ''){ alert('該当するデータが見つかりませんでした。'); return false; } parent.result.document.location.href="result.html"; parent.result.document.write(ss); } //--> </script> ------------ここまで----------- といった感じです。 よろしくお願いします。

  • フレームサイズの変更について

    過去ログを参照していたら、次のようなサンプルを発見したのですが、 IEでは動作しますが、FireFoxではエラーになってしまいます。 どこを修正すれば動くようになるでしょうか? ■frame.html■ <html> <head><title></title> <script language="javascript"> <!-- document.write(frset('40%','60%','a.htm?','1.htm?')) function frset(a,b,f1,f2){ var frset= '<title>frame</title>\n' +'<frameset cols="'+a+','+b+'">\n' +'<frame src="'+f1+'">\n' +'<frame src="'+f2+'">\n' +'</frameset>\n' return frset } //--> </script> </head> </html> ■a.html■ <html> <head><title></title> </head> <body> 右のリンクで<br>フレームのサイズ<br>が変わるよ! </body> </html> ■1.html■ <html> <head><title></title> <script language="javascript"> <!-- function chsize(a,b){ if(location.search==""){ if(document.all){ parent.document.all.tags("frameset")[0].cols=a+","+b }else{ //parent.document.open() parent.document.write(frset(a,b,parent.frames[0].location.href+"?",parent.frames[1].location.href+"?")) parent.document.close() } } } //--> </script> </head> <body onload="chsize('40%','60%')"> こっち側60%です。 <br> <a href="2.htm">こっち側を40%にする!</a> </body> </html> ■2.html■ <html> <head><title></title> <script language="javascript"> <!-- function chsize(a,b){ if(location.search==""){ if(document.all){ parent.document.all.tags("frameset")[0].cols=a+","+b }else{ //parent.document.open() parent.document.write(frset(a,b,parent.frames[0].location.href+"?",parent.frames[1].location.href+"?")) parent.document.close() } } } //--> </script> </head> <body onload="chsize('60%','40%')"> <a href="1.htm">こっち側を60%にする!</a> <br> こっち側40%です。 </body> </html>

  • javascriptでGETパラメータを扱う

    javascript初心者です。 javascriptでURLをGETパラメータとして取得して、その値を HTMLのaタグのリンク先に指定しようとしています。 こんな感じに出来たらいいと思っています。 ↓ <a href="[GETパラメータで取得したURL]">[GETパラメータで取得したURL]</a> GETパラメータの取得は自力で調べて下記のように記述すればできることがわかりましたが、 aタグのリンク先に指定する記述方法が分かりません。 助けてください。 よろしくお願いします。 <script type="text/javascript"> function getUrlVars() { var vars = [], hash; var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); for(var i = 0; i < hashes.length; i++) { hash = hashes[i].split('='); vars.push(hash[0]); vars[hash[0]] = hash[1]; } return vars; } </script>

  • JavaScript Ajax テキストの更新時間

    var reload = ""; var reload = function() {  \$.ajax({   url: 'test.cgi',   type : 'get',   dataType: 'text',    success: function(data) {     \$('#text').html(data);     return false;    },    error: function(data) {     //alert('読込に失敗しました…');    }  });  setTimeout("reload()", 3000); } 現在3秒毎に更新としているのですが、 これを「log/log.txt」 の更新時間で、test.cgiを リロードさせるようにするには、 どうすればいいでしょうか? できればソースで教えて頂けるとありがたいです。 どうかよろしくお願いいたしますm(_ _)m

  • タイマーについて教えて下さい!!

    現在タイマーの使い方が分からず下記の様に 秒数をカウントして行っています。 これを毎日15時と決まった時間に行うにはどうしたらいいのでしょうか?? JAVA触り初めてまだ一週間足らずなので… <script type="text/javascript"> <!-- var i=600; /*自動更新秒数(常にループする秒数)*/ var j=0;/*ずらし秒数(最初に実行するまでの秒数)*/ var di=i; i=j;/*一番最初の秒数*/ function AutoReLoad(){ if(!i) { parent.frames("kuzusi1").location.href = "2-A.html" parent.frames("kurikku1").location.href = "2-Aクリック.html" i=di; } i--; fun=Math.floor(i/60); byou=i-(fun*60); document.all("countID").innerHTML = "<b>" + fun +" </b>"; document.all("countID2").innerHTML = "<b>" + byou +" </b>"; setTimeout("AutoReLoad()",1000);/*自動更新秒数*/ } //--> </script> </head> <body onload="AutoReLoad()"> <center> <font color="#ffffff">あと</font> <span id="countID"></span> <font color="#ffffff">分</font> <span id="countID2"></span> <font color="#ffffff">秒</font> </center>

  • javascript/他ページ内リンクでもスムーズスクロールさせたい

    javascript/他ページ内リンクでもスムーズスクロールさせたい お世話になります。 page1.htmlのページ内リンクにスムーズスクロールを設定しています。ページ内に#aとアンカー設定し、page1.html内で移動するときはもちろん問題ありません。 これをpage2.htmlからpage1.html#aにリンクさせる際にもスムーズスクロールで移動させるにはどうしたら良いのでしょうか? そもそもそんなことはできないのでしょうか? ソースを書かせていただきたいのですが、文字数が足りません。とりあえず最初の方だけ書きます。 var ss = { fixAllLinks: function() { var allLinks = document.getElementsByTagName('a'); for (var i=0;i<allLinks.length;i++) { var lnk = allLinks[i]; if ((lnk.href && lnk.href.indexOf('#') != -1) && ( (lnk.pathname == location.pathname) || ('/'+lnk.pathname == location.pathname) ) && (lnk.search == location.search)) { ss.addEvent(lnk,'click',ss.smoothScroll); } } }, smoothScroll: function(e) { if (window.event) { target = window.event.srcElement; } else if (e) { target = e.target; } else return; if (target.nodeName.toLowerCase() != 'a') { target = target.parentNode; } if (target.nodeName.toLowerCase() != 'a') return; anchor = target.hash.substr(1); var allLinks = document.getElementsByTagName('a'); var destinationLink = null; for (var i=0;i<allLinks.length;i++) { var lnk = allLinks[i]; if (lnk.name && (lnk.name == anchor)) { destinationLink = lnk; break; } } 続きは補足欄に書かせていただけそうなら書きます。 中途半端な情報かつ長文で申し訳ありません。 どんな些細なことでも構いませんので、アドバイスいただけないでしょうか。 どうぞよろしくお願いいたします。

  • javaScriptでのクエリー文字の取得

    お世話になります。 PHPを使ってjavaScriptで書かれたページを生成しています。 デバッグ中、 このjavaScriptを書き換えても、 ページがキャッシュされてしまい、 書き換えたとおりに動かないことがあります。 これを回避する方法として、 javaScriptにクエリー文字を渡すと、 キャッシュを回避できるという方法があるようです。 参考サイト  http://wisdomtrees.net/?p=10 http://billyboy.blog81.fc2.com/blog-entry-183.html これらを真似て、 PHPでクエリー値が動的に変わるようにしようとしているのですが、うまくいきません。 以下、呼び出し元のPHPと呼び出し先のjavascriptのソースです。 ●test.php <?php echo "<script type='text/javascript' src='test.js?time=".time()."'></script>"; ?> ●test.js document.write("### loading time is "+getQuerystring('time')); function getQuerystring(key, default_) {  if (default_==null) { default_=""; key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); var regex = new RegExp("[\\?&]"+key+"=([^&#]*)"); var qs = regex.exec(window.location.href); if(qs == null){ return default_; }else { return qs[1]; } } } test.jsの1行目では、 クエリー文字が渡っているかどうか表示しているのですが、 動かしてみると何も表示されません。 表示されない原因としては、window.location.hrefが、 test.php(呼び出し元)を指しているためなのですが、 では、test.jsとしてクエリー文字を処理するには、 どうしたらよいのでしょうか? よい方法があれば教えていただければと思います。 よろしくお願いします。

  • javascriptのconfirmについて

    javascriptのconfirmが実行されると確認ダイアログボックスが表示されるはずですが、 何故か何も表示されず、必ずfalseを通ります。 かなり初心者的ミスを侵している気がしますが、調べても分からなかったので、 どなたかご教授頂ければ幸いです。記述したソースは以下になります。 headタグ内 <script type="text/javascript"> <!-- function confirm(s){ if(window.confirm('実行します')){ location.href = "/?flg="+s; } return false; } // --> </script> ■bodyタグ内 <a href="javascript:confirm('1');return false;">テスト</a>

専門家に質問してみよう