v 您现在的位置:八十年代交流网 ->>教 程 区》版   文字大小:[][][默认]

v 第1/2页
跳至
[刷新][下一页][尾页]

主题: [顶楼] javascript教程-第六章-第三讲-插见检测
邮寄到我的邮箱
打印本页
收藏本贴

作者:蓝の羽(litao2001cn)发表于2003-12-23 16:36:36

检查插件:
随着网上各式各样的插件的不断增加,你将很难判断出用户端是否装有你所需要的插件

。JavaScript是我们可以做的更好。

在Mac上的Navigator 3及其后版本和IE 5及其后版本中,JavaScript可以检测浏览器所安装的插件,以及浏览器所支持的文件类型(PDF ,MP3,等等)。相关的两个对象是nagivator.plugins和navigator.mimeTypes.nagivator.plugins中包含浏览器所安装的插件的名字和描述。navigator.mimeTypes指示出浏览器所支持的文件类型。

对于WINDOWS系统中的IE,判断插件支持与否的过程则大不相同,不过,一会儿你将看到,我们还是可以用一些JavaScript来支持这些浏览器。

文件类型:

当网络服务器把一个文档传送给某个浏览器时,它将会包含一些有关所发送的文件类型的信息。浏览器利用这个信息(MIME类型)决定如何处理这个文件。既是在窗口中显示该文凼的内容,还是运行合适的插件或帮助程序。
例如:PDF文件的MIME类型是application/pdf,FLASH电影的MIME类型是application/x-shockwave-flash。一个浏览器所支持的MIME类型几乎决定它所安装的插件。换句话说,如果浏览器支持application/x-shockwave-flash的MIME类型,那么它很可能安装了FLASH插件。
为了应用javascript检测MIME类型的能力,我们只要将所要查询的文件类型传递给nagivatormimetypes,:

if(navigator.mimeTypes["appllication/x-shockwave-flash"]) {
document.write("Yor have Flash!");
}
else {
document.write("You don’t hvae Flash!");
}
注意,要查询的MIME类型application/x-shockwave-flash写在方括号里,并用双引号括起

来。这是因为mimetypes实际上是一个数组,它列出了浏览器所支持的全部MIME类型。

但是和第五章中所见的数组不同,那里用数字访问各个元素,而这里用字符串。这种数

组叫关联数组(associative array)。关联数组很有用处,因为它们提供了一种具有描述

性的数组访问方式,使用名字而不是使用数字。

***************************************************************
如何查看MIME类型?
在Navigator中,选择Edit---Preferences---Navigator---Applications选项可以得到浏览器所

安装的插件的列表和它们的MIME类型。你也可以在地址拦输入:“about:plugins”。在

MAC上的IE中,选择Edit--Preferences--Receiving Files ---FileHelpers选项可以找到不同

文凼的MIME类型。在WINDOWS系统上,从资源管理器(而不是IE)中选择View--

Folder Options--File Types可以得到所支持的文件列表。
********************************************************************
我们就来写一个根据用户培植而有叫大差别的网页。下面是一些可能性:
1:如果浏览器支持navigator.mimetypes数组(MAC是的Navigator 3及其后版本和IE 5及

其后版本)并且找到FLASH MIME类型,那么播放FLASH电影。
2:如果浏览器支持mimetypes数组,打算没有找到FLASH MIME类型,那么显示下载

FLASH的网页和本站点的无FLASH版本。
3:如果浏览器是WINDOWS上的IE(不支持mimetypes数组),则当找到FLASH MIME

类型时播放电影,没找到时下载FLASH ActiveX空间
4:副国不是上边的情况,只要显示一个网页让用户选择进入FLASH站点,进入非

FLASH站点或则下载FLASH插件。
这样就考虑到了Navigator和IE/MAC用户,IE/WINDOWS拥护可以自动下载FLASH插件

,其他的用户则可以决定他们想做什么:
<html>
<head>
<title>A Smart Flash Page</title>
<script language="JavaScript">
var browser;

//Determine if browser supports mimeTypes array
if(navigator.mimeTypes && navigator.mimeTypes.length !=0) {
browser="mimeTypes"
}
else {
browser="noMimeTypes"
}
</script>
</head>
<body>
<script language="JavaScript">
//if browser supports mimeTypes..
if(browser == "mimeTypes") {
//Display Flash plug-in on page if detected
if(navigator.mimeType["application/x-shockwave-flash"]) {
document.write(’<embed src="movie.swf" height="320" width="240">’);
}
//Otherwise display links to download plug-in or view non-Flash site
else {
document.write(’<p><a href="http://www.macromedia.com/downloads/">’);
document.write(’Download Flash Player</a>’);
document.write(’<p><a href="noflash.html">Enter Non-Flash site</a>’);
}
}

//For IE,use object tag to open movie in Flash ActiveX control or
//download it if it isn’t available
else if (navigator.appName == "Microsoft Internet Explorer") {
document.write(’<object ’);
document.write(’classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"’);
document.write(’codebase=’);
document.write(’"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.

cab#version=4,0,2,0"’);
document.write(’width="240" height="320" name="Flash" id="movie">’);
document.write(’<param name="src" value="movie.swf">’);
document.write(’<param name="bgcolor" value="#000000">’);
document.write(’</object>’);
}
//Otherwise, display links to enter Flash an non-Flash sites,as will as download the plug-in
else {
document.write(’<p><a href="flash.html">enter Flash site </a>’);
document.write(’<p><a href="noflash.html">enter not-Flash site</a>’);
document.write(’<p><a href="http://www.macromedia.com/downloads/">’);
document.write(’Download Flash Player</a>’);
}
</script>
</body>
</html>
脚本开始先判断浏览器石头支持navigator..mimetypes数组。这种方法是另一种浏览器版本的检测形式 ,叫多对象检测(object detection)。对象检测并不检查具体的浏览器名字和版本,而是检测某个特别的对象是否存在。

浏览器之外的检测:
JavaScript不仅仅检测浏览器和插件,它还可以判断出运行浏览器的操作系统。
我们在检测浏览器的时候就会附带着这个信息
操作系统 appVersion
Windows2000 Windows NT 5.0;U
Windows98 win98;U
Windows 95 Win95;I
Windows 3.1 Win 16;I
Macintosh PPC Macintosh;I;PPC
Linux(Unix) X11;U;Linux

看一个简单的脚本:
funciton isWin98() {
if (navigator.appVersion.indexOf("98") != -1) {
return true;
}
else {
return false;
}
}
这样我们就可以调用:
if(isWin98()) {
document.write("You’re running Windows 98");
}

注意:因为Navigator和IE对WINDOWS 98的返回值非别是“Win98” 和“Windows 98”,所以可以试着搜索“98”。

你还可以轻松地结合操作系统检测和浏览器检测,或者操作系统检测和插件检测。他们都可以互换。你的访问着再也不必基于它们的软件(和硬件)而费神的做决定了,因为你完全可以代劳!!

终于把这章给讲完了。。今天特别的累昂!~

[留言] [回复]
------------------------------
我是那--
在你许愿时
划过天际的那颗流星
燃烧我的生命,给你一刻的灿烂
带着你的祝福
到天堂
把我赤裸的灵魂
交给天使,换你一生的快乐


主题: [2楼] [回复:蓝の羽]西帅回复:
邮寄到我的邮箱
打印本页
收藏本贴

作者:西帅(fynewsun)发表于2003-12-23 17:39:34

帮忙写一个自动检查并自动下载媒体播放器9的代码出来。

[留言] [回复]
------------------------------
一些事是永远都无法明白的
一些人是永远都无法忘记的

/bbs/photo/20031224195539.gif


主题: [3楼] [回复西帅]Re:西帅回复:
邮寄到我的邮箱
打印本页
收藏本贴

作者:蓝の羽(litao2001cn)发表于2003-12-23 17:49:55

我?就我?那你等吧,我尽量!!

[留言] [回复]
------------------------------
我是那--
在你许愿时
划过天际的那颗流星
燃烧我的生命,给你一刻的灿烂
带着你的祝福
到天堂
把我赤裸的灵魂
交给天使,换你一生的快乐


主题: [4楼] [回复西帅]Re:西帅回复:
邮寄到我的邮箱
打印本页
收藏本贴

作者:蓝の羽(litao2001cn)发表于2003-12-23 19:07:24,最后修改于2003-12-23 21:25:12

Windows Media Player Plug-in Dynamic Link Library

文件名: npdsplay.dll
Npdsplay dll

Mime         类型说明   后缀   已启用
application/asx    Media Files   *     Yes
video/x-ms-asf-plugin Media Files   *     Yes
application/x-mplayer2 Media Files   *     Yes
video/x-ms-asf    Media Files (*.asf,*.asx) asf,asx,* Yes
video/x-ms-wm Media Files (*.wm) wm,* Yes
audio/x-ms-wma Media Files (*.wma) wma,* Yes
audio/x-ms-wax Media Files (*.wax) wax,* Yes
video/x-ms-wmv Media Files (*.wmv) wmv,* Yes
video/x-ms-wvx Media Files (*.wvx) wvx,* Yes

你知道哪个是MEDIA PLAYER 9特有的插件吗?

[留言] [回复]
------------------------------
我是那--
在你许愿时
划过天际的那颗流星
燃烧我的生命,给你一刻的灿烂
带着你的祝福
到天堂
把我赤裸的灵魂
交给天使,换你一生的快乐


主题: [5楼] [回复忙写一个自动检查并自]蓝の羽回复:
邮寄到我的邮箱
打印本页
收藏本贴

作者:蓝の羽(litao2001cn)发表于2003-12-23 19:10:37

放置下面的代码到页面 BODY 区的开始、中间或者结尾处:

< EMBED src="applause.wav" type="audio/wav" hidden=true autostart=true loop=false width=1 height=1> < /EMBED>
   设置 autostart、width 以及 height 属性使浏览器不显示 Windows Media Player,并等待用户按下 播放(Play)按钮。loop=false 表示不循环播放,type 属性给出了声音文件的 MIME 类型,这告诉了浏览器怎样播放它。大多数的浏览器能够播放嵌入的 WAV、 MIDI、 AU 以及 AIFF 文件,其相应的 MIME 类型分别是 audio/wav、audio/midi、 audio/basic 以及 audio/aiff。

   Web播放另类-MP3

   现在的 Web 上你可以看到大量的 MP3 链接。但是出于格式问题,你很少发现在 Web 页面中播放 MP3。一个原因就是没有MP3 声音文件可接受的标准 MIME 类型,这使得 Web 服务器和浏览器难于识别。另一个原因就是缺乏一个通用的 MP3 插件,虽然 QuickTime 支持 MP3, 但是它的 Windows 插件却没有注册。如果你不介意不完善的定义,可以使用 MP3 嵌入格式 type="audio/mpeg",并确认你的 Web 服务器支持这个 MIME 类型。QuickTime 插件服务于 Macintosh 平台,以及 Windows 平台使用 Internet Explorer 和 最新版本 Windows Media Player的用户。


[留言] [回复]
------------------------------
我是那--
在你许愿时
划过天际的那颗流星
燃烧我的生命,给你一刻的灿烂
带着你的祝福
到天堂
把我赤裸的灵魂
交给天使,换你一生的快乐


主题: [6楼] [回复蓝の羽]西帅回复:
邮寄到我的邮箱
打印本页
收藏本贴

作者:西帅(fynewsun)发表于2003-12-23 20:24:25

这个方式用过,不安装9版本以上的媒体播放器好象一般都不能播放。

[留言] [回复]
------------------------------
一些事是永远都无法明白的
一些人是永远都无法忘记的

/bbs/photo/20031224195539.gif


主题: [7楼] [回复安装9版本以上的媒]蓝の羽回复:
邮寄到我的邮箱
打印本页
收藏本贴

作者:蓝の羽(litao2001cn)发表于2003-12-24 11:54:49

我觉得可以从注册表入手的。检查注册表中的键值!

[留言] [回复]
------------------------------
我是那--
在你许愿时
划过天际的那颗流星
燃烧我的生命,给你一刻的灿烂
带着你的祝福
到天堂
把我赤裸的灵魂
交给天使,换你一生的快乐


主题: [8楼] [回复蓝の羽]西帅回复:
邮寄到我的邮箱
打印本页
收藏本贴

作者:西帅(fynewsun)发表于2003-12-24 11:55:39

默认项里都有的,不过不会自动安装。

[留言] [回复]
------------------------------
一些事是永远都无法明白的
一些人是永远都无法忘记的

/bbs/photo/20031224195539.gif


v 第1/2页
跳至
[刷新][下一页][尾页]

v 您现在的位置:八十年代交流网 ->>教 程 区》版
[返回]

公司简介 - 相关条款 - 站点地图 - 合作信息 - 网站建设 - 广告业务
Copyright  ©  2002-2004  八十年代·版权所有