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