JavaScriptでGoogleカレンダーのデフォルト表示月を動的にする方法 (2
前回からものすごーく時は過ぎているのですが、続編をちゃんと書こうとおもいます。
※説明は上記前回既読を前提に書いております。
本内容の前提条件
- ※ 運用に合わせ、20日を過ぎていたら翌月。20未満なら当月の予定を出す。という制御にした。
- googleカレンダー埋め込み iframe (<iframe src="https://www.google.com/calendar/embed?...."...</iframe>)以外のiframeはページ内に存在しない
というわけでそのjavascriptからgoogleの日付パラメータを動的に変える実装をさらっとご紹介。
1)googleカレンダーの日付パラメータに渡す javascript date.js を作成
冗長すぎるという。。m(__)m
/* from(yyyymm01)生成 現在日付 > middday なら 翌月、そうでなければ当月01日を返す */ function getDate(midday){ var addmonth = 1; var date = new Date(); var year = date.getFullYear(); var day = date.getDate(); if (day > midday) { addmonth = 2; } var month = date.getMonth() + addmonth; if (month < 10) { month = "0" + month; } var strDate = year + month + "01"; return strDate; } /* to(yyyymm02)生成 現在日付 > middday なら 翌月、そうでなければ当月02日を返す */ function getDateto(midday){ var date = new Date(); var year = date.getFullYear(); var day = date.getDate(); if (day > midday) { addmonth = 2; } var month = date.getMonth() + addmonth; //getMonth は 0-11を取得 if (month < 10) { month = "0" + month; } var strDate = year + month + "02"; return strDate; } /* 「&dates=yyyymm01/yyyymm02」を googleカレンダー埋め込み iframe<iframe src="https://www.google.com/calendar/embed?...." のsrc属性の末尾に足しこむ。 */ function setGoogleDates(midday) { //alert (getDate(1)); var midday = 12; var obj= document.getElementsByTagName("iframe")[0]; // ページ内の一番最初(0個目)のiframe=googleカレンダーである場合。 obj.src = obj.src+'&dates='+getDate(midday) + "/" + getDateto(midday); // ここで足し込む }
あとは1)のdate.jsをサイト上に配置し、
googleカレンダーを埋め込んだHTML内で
<script type="text/javascript" src="./date.js"></script> <*-- HTMLとdate.jsが同じ階層においてある場合 -->
とかすれば、これで完成なう。。のはず。。
自分と同じ境遇(HTML上でgoogleカレンダーを動的に表示したい。)の方がいれば。 お役に立てれば幸いでございまする。