Javascript根据一天中的时间在iframe中顺序加载一系列页面?

Javascript根据一天中的时间在iframe中顺序加载一系列页面?,javascript,Javascript,基本上,我有一个网站,根据一天中的时间加载日程信息。我现在的方式效率很低,当我需要做出改变时,会使事情变得复杂。我有7个文件夹,一周中的每一天一个,在这些日常文件夹中有24个HTML页面,一天中的每一小时一个,然后在一个文件夹中,我有多达24个带有时间表的页面。我想不出或者找不到一个脚本可以将每小时的HTML页面缩减为一个页面 下面是我为7am编写的代码示例 此文件另存为7.html。上午8点,它重定向到index.html,而index.html又根据一天中的时间重定向到8.html <

基本上,我有一个网站,根据一天中的时间加载日程信息。我现在的方式效率很低,当我需要做出改变时,会使事情变得复杂。我有7个文件夹,一周中的每一天一个,在这些日常文件夹中有24个HTML页面,一天中的每一小时一个,然后在一个文件夹中,我有多达24个带有时间表的页面。我想不出或者找不到一个脚本可以将每小时的HTML页面缩减为一个页面

下面是我为7am编写的代码示例

此文件另存为7.html。上午8点,它重定向到index.html,而index.html又根据一天中的时间重定向到8.html

<script>
var intervalId = window.setInterval(checkTime, 500);

function checkTime() {

    var d = new Date();
    var h = d.getHours();
    var m = d.getMinutes();
    var s = d.getSeconds();

    if(h == 08 && m == 00 && s == 0) return window.location='../index.html';
}
</script>

var intervalId=window.setInterval(检查时间,500);
函数checkTime(){
var d=新日期();
var h=d.getHours();
var m=d.getMinutes();
var s=d.getSeconds();
如果(h==08&&m==00&&s==0)返回window.location='../index.html';
}
这是包含计划信息的iframe。如您所见,它从tables文件夹(当前小时和未来三小时)加载7.html、8.html、9.html和10.html的页面。在加载下一个表之前,每个表显示10秒钟,然后在下一个小时内重复

<p align="center"><iframe id="if_one" frameBorder="0" scrolling="no" src="" style="width: 100%;height: 700px;float: middle;margin: 0 auto;"></iframe></p>

<div id="myProgress">
  <div id="myBar"></div>
</div>

<script type="text/javascript">
var pages = [
    'tables/7.html',
    'tables/8.html',
    'tables/9.html',
    'tables/10.html'
], p = pages.length;
while(--p > -1){
    (function(p){
        var a = document.createElement('a');
        a.href = pages[p];
        pages[p] = a;
    })(p);
}

function loadIframe() {
var page = pages[(p = ++p % pages.length)], bust = 'bustcache=' + new Date().getTime();
page = page.search? page.href + '&' + bust : page.href + '?' + bust;
document.getElementById('if_one').src = page;

  var elem = document.getElementById("myBar");   
  var width = 1;
  var id = setInterval(frame, 100);
  function frame() {
    if (width >= 100) {
      clearInterval(id);
    } else {
      width++; 
      elem.style.width = width + '%'; 
    }
  }

setTimeout(loadIframe, 10000);
}
loadIframe();
</script>

变量页=[ “tables/7.html”, “tables/8.html”, “tables/9.html”, “tables/10.html” ],p=页数。长度; 而(--p>-1){ (职能(p){ var a=document.createElement('a'); a、 href=页面[p]; 页数[p]=a; })(p) ); } 函数loadIframe(){ var page=pages[(p=++p%pages.length)],bust='bustcache='+new Date().getTime(); page=page.search?page.href+'&'+半身像:page.href+'?'+半身像; document.getElementById('if_one')。src=page; var elem=document.getElementById(“myBar”); var宽度=1; 变量id=设置间隔(帧,100); 函数框架(){ 如果(宽度>=100){ 清除间隔(id); }否则{ 宽度++; elem.style.width=宽度+'%'; } } setTimeout(loadIframe,10000); } loadIframe();
我想做的是把这一切都写在第页。因此,如果是8am,它将加载范围为8.html到11.html的页面。如果是上午9点,它会加载9.html到12.html等范围内的页面。唯一的问题是,有时没有每小时的时间表。例如,12可能没有任何内容,因此如果文件夹中不存在tables/12.html,脚本必须知道跳过tables/12.html

基本上:

  • 如果是上午9点,请在iframe中加载页面范围“tables/9.html”-“tables/12.html”,跳过缺失的页面

  • 如果是上午10点,在iframe中加载页面范围“tables/10.html”-“tables/13.html”,跳过缺失的页面

  • 等等


这可能吗?

如果在包含小时文件的文件夹上启用了目录浏览,则可以在页面加载时请求“tables/”,然后解析输出以生成可用小时文件的列表,以便脚本知道要跳过哪些小时文件。只需创建一个配置文件(页面在启动时加载),其中包含可用文件的JSON数组,可能会更容易。如果在包含小时文件的文件夹上启用了目录浏览,则可以请求“tables/”加载页面时,解析输出以生成可用小时文件列表,以便脚本知道要跳过哪些小时文件。创建一个在启动时加载的配置文件(包含可用文件的JSON数组)可能更容易。