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. 这是一个更加复杂的例子,这个例子没有单独的声音控制窗口。(下面有关于这个例子的讨
相关文档:
创建RegExp对象实例的两种方式
1.使用RegExp对象的显示构造函数,语法为:new RegExp("pattern")[,"flags"];
2.使用RegExp对象的隐示构造函数,语法为:/pattern/flags;
3.flags为以下标志字符的组合
(1).g作全局标志,如果没有,匹配第一个
(2). i 忽略大小写
(3).m 多行标志
正 ......
/**
* 取得字符串的字节长度
*/
代码
function strlen(str)
{
var i;
var len;
len = 0;
for (i=0;i<str.length;i++)
{
if (str.charCodeAt(i)>255) len+=2; else len++;
}
return l ......
<a href="#" onclick="ChildNode(this);">aaa</a>要改为
<a href="#" onclick="ChildNode(event);">aaa</a>
无法取得this对象,要用以下方法来取得。
function ChildNode(e)
{
var evt = e ? e : (window.event ? window.event : null); //此方法为了在firefox中的兼容
var node = evt.srcEl ......
<!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=" ......