能否请各位帮忙实现这样一个页面跳转功能? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a Javascript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
Javascript 权威指南第 5 版
Closure: The Definitive Guide
regent
V2EX    Javascript

能否请各位帮忙实现这样一个页面跳转功能?

  •  
  •   regent 2012-05-18 20:20:14 +08:00 4417 次点击
    这是一个创建于 4901 天前的主题,其中的信息可能已经有所发展或是发生改变。
    是这样的,我想在我的博客中加入这样一个功能,
    就是一个按今天是星期几来播放不同的音乐这样的功能

    比如说用户此时的时间是星期一上午,那么就打开1.html这个页面,页面上已经放好了我选择的歌曲
    如果是星期一下午就打开2.html,星期二上午打开3.html……如果是周末则打开weekend.html

    现在这些html我都已经做好了,目前的方式把一堆链接列在一个页面里,让用户自己点击比如“星期一上午”这个链接
    (没办法,就是业余爱好者,技术有限,要是从头开始去钻研太多技术学习成本太高,所以目前这样实现)

    能不能请帮忙哪位写一下代码,帮我实现:当用户点击“我要听歌”这个链接之后,按照用户当前的时间跳转到上述我做好的网页,实现之后,”我要听歌“这个链接就可以放在很多地方了,这样的话我觉得用户体验可能会更好一些(虽然只是个人博客,不过也觉得用户体验要好一些)

    谢谢!!!
    23 条回复    1970-01-01 08:00:00 +08:00
    mkeith
        1
    mkeith  
       2012-05-18 21:14:38 +08:00
    js 可以实现吧,一个页面就行了。
    lackrp
        2
    lackrp  
       2012-05-18 21:33:30 +08:00   1
    var now = new Date();
    var weekday = now.getDay();
    if (weekday >= 1 && weekday <= 5) {
    return (weekday * 2 - (now.getHours() < 12 ? 1 : 0)) + '.html';
    } else {
    return 'weekend.html';
    }
    fanzheng
        3
    fanzheng  
       2012-05-18 21:33:55 +08:00   1
    <script type="text/Javascript">
    document.write("<a href=\"");
    var day = new Date();
    var cur = day.getDay();
    document.write(cur);
    document.write(".html\">linkname</a>");
    </script>

    把你的链接换成这个,音乐页面的html,如果是周一的话是1.html 周5是5.html ,一个个测试下吧。
    regent
        4
    regent  
    OP
       2012-05-18 22:44:59 +08:00
    @lackrp 谢谢你的回复
    @fanzheng 谢谢,你的回复对我更好懂些,我试试看,有其他问题会继续请教的
    @mkeith 是,不过我自己不懂,所以来v2ex求助
    xxwd001
        5
    xxwd001  
       2012-05-18 22:50:20 +08:00   1
    综合一下LS两位的就更好了
    <script type="text/Javascript">
    document.write("<a href=\"");
    var day = new Date();
    var cur = day.getDay();
    if(cur>=1 && cur<=5){
    document.write(cur);
    document.write(".html\">linkname</a>"); //linkname,链接文字
    } else{
    document.write("weekend.html\">linkname</a>");
    }
    </script>
    lackrp
        6
    lackrp  
       2012-05-18 23:14:06 +08:00
    @regent 别客气,祝好运 :)

    @fanzheng , @xxwd001 星期一下午是2.html哦~ 哈哈,还是你们的方法比较简单
    regent
        7
    regent  
    OP
       2012-05-18 23:20:16 +08:00
    @xxwd001 @fanzheng 刚刚发现,二位的方法没有考虑到上午、下午的情况,能否加入呢?

    @lackrp 不好意思,没有仔细看清楚,确实,你的方法注意到了我的要求,需要考虑上午下午的问题
    dianso
        8
    dianso  
       2012-05-18 23:23:12 +08:00
    js很容易搞定的,按楼上几位说的做吧
    regent
        9
    regent  
    OP
       2012-05-18 23:58:10 +08:00
    @xxwd001 @fanzheng @lackrp 音乐展示的话按星期几判断已经足够了,而且对于技术不高的我来说其实已经足够方便,之所以又希望加入上午、下午的判断,是因为我发现这个方法还可以在不用php+mysql那样的方法下,建立一个简单的查找大学空闲教室的功能(前提是已经将空闲教室统计出来了),另外还需要修改一下页面的名称,
    不过我感觉要多加几个判断:

    1、首先要判断是星期几,如果是周末直接跳转weekend.html

    2、如果是星期一到星期五,在此基础上继续判断:时间满足上午八点到中午十二点,跳转到Monday1.html类似这样的页面;时间满足中午十二点到下午2点,全部跳转到zhongwu.html;时间满足下午2点到下午六点,跳转到Monday2.html这样的页面;时间满足下午六点到晚上十一点,统一跳转evening.html;其他情况,统一跳转night.html

    各位觉得怎么样?另外跳转的html名是不是最好和函数的返回值一样会比较好写?
    lackrp
        10
    lackrp  
       2012-05-19 00:11:48 +08:00
    @regent 文件名还是叫monday_morning.html(或者1_morning.html), noon.html, monday_afternoon.html(或者1_afternoon.html), evening.html, night.html吧,拼音和英文混杂,看起来很奇怪
    xxwd001
        11
    xxwd001  
       2012-05-19 00:16:15 +08:00
    @regent 方法还是一样的,现在用手机登录的,叫@lackrp帮你解决吧!
    xxwd001
        12
    xxwd001  
       2012-05-19 00:18:27 +08:00
    汗…忘了空格了
    regent
        13
    regent  
    OP
       2012-05-19 01:32:43 +08:00
    @lackrp 开始也打算用noon,不过又看到一个地方说过noon指正午,所以就用拼音了
    xxwd001
        14
    xxwd001  
       2012-05-19 12:25:10 +08:00   1
    @regent
    <script type="text/Javascript">
    document.write("<a href=\"");
    var day = new Date();
    var cur = day.getDay();
    var hour=day.getHours();
    if(cur==6 || cur==0){
    document.write("weekend.html\">linkname</a>");
    } else{
    if(hour>=8 && hour<12){
    document.write("Monday1.html\">linkname</a>");
    } else if(hour>=12 && hour<14){
    document.write("zhongwu.html\">linkname</a>");
    } else if(hour>=14 && hour<18){
    document.write("Monday2.html\">linkname</a>");
    } else if(hour>=18 && hour<23){
    document.write("evening.html\">linkname</a>");
    } else{
    document.write("night.html\">linkname</a>");
    }
    </script>
    xxwd001
        15
    xxwd001  
       2012-05-19 12:57:53 +08:00
    @regent 最后的</script>前面少了一个 }
    gDD
        16
    gDD  
       2012-05-19 13:20:14 +08:00   1
    bcxx
        17
    bcxx  
       2012-05-19 13:25:14 +08:00
    @livid #reply15 的 gist 挤爆了~
    regent
        18
    regent  
    OP
       2012-05-19 14:03:02 +08:00
    @xxwd001 谢谢,v2ex的用户真的很热心,
    不过if(hour>=8 && hour<12){document.write("Monday1.html\">
    这里应该是把Monday Tuesday等都作为变量,也就是周一到周五的上下午时要单独处理的,中午晚上等有统一跳转,上午跳转类似Tuesday1.html,下午跳转Tuesday2.html


    @gDD 哇,非常感谢,还让我知道了v2ex还支持这种方式贴代码,另外jsfiddle.net是一个在线测试Javascript的网站吗?原来还有这种服务啊,读了你的代码,配合我上面提出的,具体实现上有这样几点问题:

    1、除周末外的时间,也就是周一到周五,noon,evening,night是统一跳转的,因为直接跳转到例如night.html,而不是Monday_night.html这样的,

    2、周末所有时间全部跳转weekend.html,不必再细分

    我之所以这样提出,是因为我们学校发布的公开信息只有周一到周五的,周末、周一到周五的中午和晚上等这样的情况,进行统一跳转可以减少页面制作量(因为即便制作了也是一样的,就是名称不同),不过你的代码对我很有学习价值,对于一周所有时间都有安排的情况是适用的,再次感谢
    gDD
        19
    gDD  
       2012-05-19 14:15:04 +08:00
    @regent #18

    page = map[day] + "_" + getDayPostfix(hr);
    的后面一行加上
    page.replace(/(\w+?_)(noon|evening|night)/, "$2")
    就行了。
    虽然知道你要的代码和我写的有出入,但我还是写成了更通用点的,导致现在很难改成你想要的,不过加上上面那行就行了,算是一个dirty hack吧。
    gDD
        20
    gDD  
       2012-05-19 14:16:12 +08:00
    错了,应该是
    page = page.replace(/(\w+?_)(noon|evening|night)/, "$2");
    lackrp
        21
    lackrp  
       2012-05-19 16:58:49 +08:00
    lackrp
        22
    lackrp  
       2012-05-19 16:59:33 +08:00
    sorry,点错了
    qiuai
        23
    qiuai  
    PRO
       2012-05-19 18:22:52 +08:00
    直接获取星期,然后加在PHP文件的函数后面不就是了?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2422 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 15:42 PVG 23:42 LAX 08:42 JFK 11:42
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86