現在の曜日と時刻を取得してインライフレームのsrcに反映させるJavascript

<div id="block3a">
<h4>予定表</h4>
<iframe src="timetable/Schedule.html" name="Schedule" id="Schedule" title="予定表"></iframe>
</div>

<script type="text/javascript">
<!--
var date = new Date () ;
var year = date.getFullYear() ;    // 年
var month = date.getMonth() + 1 ;    // 月
var day = date.getDate() ;    // 日
var hour = date.getHours() ;    // 時
var hour0 = hour-1;
if(hour0 < 5){hour0=""}else{hour0=("00"+hour0).slice(-2)};   // 5時前なら無視
var minute = date.getMinutes() ;    // 分
var second = date.getSeconds() ;    // 秒
var dayOfWeek = date.getDay() ;    // 曜日(数値)
var dayOfWeekStr = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ][dayOfWeek] ;    // 曜日(英語表記)//
var obj = document.getElementById('Schedule');
obj.src = 'timetable/Schedule.html#'+dayOfWeekStr+hour0;
-->
</script>

「hour0 = hour-1;」は「position:sticky;」で上の部分が隠れてしまうために少し下に表示するため一つ上のハッシュタグにジャンプさせるようにするため。

「if(hour0 < 5)」は hour0 < 5のハッシュタグが無いため存在しないハッシュタグに飛ぼうとして結果としてハッシュタグが無いかのように振る舞ってしまうため。このプログラムでは「dayOfWeekStr」の方のハッシュタグは残したかったので、無視させないため「if(hour0 < 5)」ではhour0を""で消した。

 このscriptを使ったページをスマホのChromeで見たところ、ページの一番上ではなく、このインラインフレームの所を表示してしまった。原因は分からず、最後に「location.href="#top"」を追加してページの一番上のハッシュタグ"#top"までジャンプさせようとしたけれど変わらずインライフレームの所を表示してしまった。

2021/4/20 13:50頃。

 

コメント