作者Crow22312 (乌鸦)
看板Ajax
标题Re: [ js ] 设定时间到了就拨放背景音乐
时间Tue Mar 20 20:36:00 2012
※ 引述《twelvechen (陈十二)》之铭言:
: 本身是写PHP
: Java的部分很弱...
有时候多按几个字可以避免掉一些不必要的麻烦,
好比说台北车站说北车的.. hmm..
Javascript 跟 Java 是不同的东西, 这也蛮容易撞到人的忌讳.
: 刚刚想试着在网页中加一段JavaScript
: 来让网页在特定的时间内自动拨放音乐
: 可每当时间到的时候都不会拨放
: (需要自己按F5重新整理才可以)
: 顺带再一问...有办法让网页上的时间跟着实际上的时间跳动吗?
: 就是不需要再经过按F5重新整理
: 以下是小弟所写的
: <script language="javascript">
: var d=new Date();
: var h=d.getHours();
: var m=d.getMinutes();
: var a=new Array();
: window.document.write(h+":"+m+"<br>");
: a[0]="音乐";
: a[1]="音乐";
: a[2]="音乐";
: a[3]="音乐";
: a[4]="音乐";
: var b=Math.floor(Math.random()* a.length);
: if (h==16 && m>30)
: {
: window document.write("<bgsound src='music/"+a[b]+"' loop='-1'
: \>"):
: }
: </script>
你的 code 其实只会跑一遍:
当浏览器载入到 script 这段就执行一遍; (以你的例子来说)
检查完发现时间还没到就不输出 bgsound 的 tag,
然後就结束了.. 就.. 结束了..
要达成你想要的效果要不断的要求程式进行检查, 是不是四点半了
-> 还没 -> 等一下 -> 还没 -> 等一下 -> ... -> 四点半了
-> 输出 -> 不要再检查了, 结束吧
要达成目的可以用 window.setInterval([handle_function], [tick_time]);
好比说:
function check_time() {
// 检查时间到了没, 到了才输出; 一但输出过就必须把 timer 停掉.
// 以这边的例子来说:
window.clearInterval(timer_id);
// 不进行这个动作的话会一直输出播音乐的 tag, 应该会很可怕..
}
// 这里的 1000 是指 1000ms, 也就是 1 秒钟
var timer_id = window.setInterval(check_time, 1000);
动态更新时钟文字给你一个方向是不要用 document.write,
用 document.getElementById 之类的方式操作会比较惬意.
捉到 element (好比说塞个 div 或者 span 让他去抓) 之後
每次塞新的显示文字给他, 比如说..
<span id="display_time"></span>
置於 <script> 之前, 搭配下面的更新文字方式
document.getElementById('display_time').innerHTML = hh + ':' + mm;
: 如上 假设小弟我设定 下午四点且大於30分时自动拨放所选取的音乐
: 我自己找都找不出漏了什麽...麻烦各位大大帮帮我
: 谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.45.190.128
1F:推 twelvechen:谢谢纠正,原文已修改 03/21 00:10