JavaScript FAQ(二十四)
二十一、声音
1、可以播放声音的浏览器(Audio-enabled Browsers)
Q:什么可以浏览器可以执行播放声音的脚本?
A:如果在声音播放描述的技术可以在Miscrosoft Internet Explorer 4.0及其更新版本中工作,那么同样可以在Netscape Navigator 3.0及其更新版本中工作。要在Internet Explorer中播放声音,在4.0以及后来版本中测试就足够了。然后在Netscape Navigator中,你必须确保以下几点:
浏览器版本是3.0或者更新版本
启用Java(不仅仅是JavaScript!)
浏览器能够识别你要播放音频文件的mime类型
LiveAudio插件可用
例如,如果你想在下面的EMBED标记中播放声音文件mySound.mid
<EMBED NAME="mySound" SRC="mySound.mid" mce_SRC="mySound.mid"
LOOP=FALSE AUTOSTART=FALSE HIDDEN=TRUE MASTERSOUND>
那么,就需要使用下面的代码进行测试:
ver=parseInt(navigator.appVersion)
if (ver>2 && navigator.appName=="Netscape"
&& navigator.mimeTypes['audio/x-midi']
&& navigator.javaEnabled()
&& document.mySound.IsReady() )
{
// put Netscape-specific code here
}
if (ver>3 && navigator.appName.indexOf("Microsoft")!=-1)
{
// put Explorer-specific code here
}
2、音频文件格式(Audio File Formats)
Q:网页可以播放那些类型的音频文件?
A:所有启用音频的浏览器都支持回放WAV和MIDI格式(.mid、.midi和.wav文件)的音频文件。根据用户浏览器和系统配置的不同的,其他格式文件也许支持或不支持。例如,ReadAudio只能用户安装了RealPlayer才可以回放。
3、使用JavaScript播放声音(Playing Sound from JavaScript)
Q:我如何编写一个播放声音JavaScript脚本呢?
A:有几种不同的方式可以通过JavaScript播放声音。我们来看几个例子:
示例1. 这是一个最简单的播放声音文件的跨浏览器脚本:
self.location="AUDIO_FILE_URL"
点击这里测试示例1代码。浏览器会打开一个单独的声音控制窗口。那么用户需要手动关闭这个窗口。注意,示例1对用户并不友好:用户每一次点击运行脚本,浏览器都会打开一个新的声音控制窗口,即使已经有音频窗口已经在播放同样的文件!
示例2. 这是一个更加复杂的例子,这个例子没有单独的声音控制窗口。(下面有关于这个例子的讨
相关文档:
"These memory leaks often
occur as a result of circular references between JavaScript objects and
objects within IE’s DOM (document object model)."
GPDE Team Blog
明显的DOM对象与 JavaScript对象循环引用很好判断,难的是隐含的循环引用判断!
隐含的循环引用需要通过作用域链进行分析判 ......
javascript cookies操作
<script>
//写cookies函数 作者:翟振凯
function SetCookie(name,value)//两个参数,一个是cookie的名子,一个是值
{
var Days = 30; //此 cookie 将被保存 30 天
var exp = new Date(); //new Date("December 31, 9998");
&n ......
<table>
<tr>
<td style="width: 201px; height: 22px;" valign="middle" align="right">
&n ......
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> New Document </title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="">
<meta name=" ......