【学习笔记】在原生javascript中使用ActiveX和插件

本文档详细介绍了在原生JavaScript中如何在非IE和IE浏览器中使用ActiveX控件和插件。内容包括插件的定义、ActiveX控件的介绍、在非IE浏览器中通过元素和MIME类型嵌入插件以及在IE中通过元素和classid属性使用ActiveX控件。此外,还讨论了检查和安装插件、ActiveX控件的方法,以及处理兼容性和版本差异的问题。 摘要由CSDN通过智能技术生成

什么是插件

现在的浏览器提供了大量的内置功能,但仍然有一些工作无法完成,如播放音频和视频。插件及其扩展浏览器功能就尤为重要。

插件是可下载的应用程序,可以插入到浏览器中,现在有很多不同的插件,常用的有Adobe Flash  Palyer ,Microsoft的Silverlinght和Apple的QuickTme播发器。

插件是封装了完成某项工作(播放音频文件)所需的所有功能的对象,对网站作者隐藏了复杂的细节,通常用C++或者JAVA等语言编写插件。

插件通常有某种用户界面,如QuickTme的用户界面可以显示播放/暂停的按钮,以及音量控件。

某些插件提供了对象的各种方法和属性,用户可以通过javascript访问,其方式与访问window对象的方法和属性一样。如QuickTme播放器插件提供的play()方法可以用于播放音频。

ActiveX控件

Microsoft与其他浏览器不同,它不支持插件,但它支持ActiveX控件,ActiveX控件提供了与插件相同的功能。

只需要进行几处修改,就可以通过几乎相同的代码使用ActiveX控件,其方式类似于在其他浏览器中使用插件。首先要确保ActiveX控件或插件可用,且可以运行在用户的浏览器中。在讨论如何使用插件和ActiveX控件之前,先详细介绍firefox和IE如何解决这个问题。

在非IE浏览器中检查并嵌入插件

通过创建脚本在网页上使用某个插件,除非网页访客在其计算机上安装了这个插件,否则访问该页面时就会得到一连串问题和错误信息。因此网页中正确添加使用插件所需的html,还要使用javascript检测用户的浏览器是否安装了页面要使用的插件。

在页面中添加插件

要使用安装在用户浏览器中的插件,必须使用html代码告诉浏览器,页面将在何时何处使用。这过程称为“嵌入(embedding)”插件。

<embed/>元素

在firefox中,嵌入插件的关键是非标准的<embed/>元素,该元素会在页面中指定位置嵌入插件的可视化界面。<embed/>元素支持很多可用于所有插件的通用属性,如height,width,src,pluginspage和type等。

绝大部分插件都显示保存在web服务器上的内容。如,处理音频的插件,如QuickTme播放器插件,可以播放带有各种扩展名的音乐文件,如.mp3和.mp4文件。flash插件可以播放flash动画(以.swf扩展名的文件)

<embed/>元素中的src属性指定插件要加载和播放的初始文件,这是一个指向文件的URL,利用该文件,浏览器会自己确定需要哪种插件。如src是http://www.xxx.swf浏览器通过检测该文件类型,就可以确定需要使用flash播放器插件。

但是并非所有的插件都需要通过src属性值来使用外部源中的数据,在这情况下,浏览器是如何确定应加载什么插件?可以使用<embed/>元素的type属性。type属性的值专用于某个插件。要找到这个信息,可以在浏览器地址栏中输入about:plugins然后回车,插件信息就会加载到浏览器中。


图中列出了浏览器安装的所有插件。我这里演示的是360浏览器,点击页面右侧的详细信息按钮,就可以看到type属性需要的值MIME。

MIME

MIME值指定了内容类型,如网页,图片或flash文件。例如flash的MIME类型为application/x-shockwave-flash。

除了可用于所有插件的许多通用属性外,还可以使用<embed/>元素指定给某个插件的特有属性。如flash插件支持quality属性,用于flash动画的画面质量。

如代码:

<embed id="flashplugin" src="xx.swf" quality=hign height=100 width=100 type="application/x-shockwave-flash"/>

firefox不仅支持非标准的<embed/>元素,还支持使用html的标准<object/>元素在页面中嵌入插件,方式类似IE。

检查并安装插件

在页面中嵌入要添加的插件类型后,如果浏览器发现用户的计算机没有安装该插件,该怎么办呢?

<embed/>元素的pluginspage属性

可以使用<embed/>元素的pluginspage属性设置为执行插件创建者的页面的url.如果用户的计算机没有安装该插件,网页就显示pluginspage属性指定的URL连接。用户可以点击该连接,加载插件。

如flash的pluginspage属性值为:

http://www.adobe.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash

但是,如果用户并未安装插件,但想将用户重定向到一个不依赖该插件的网站版本上。那么该如何确定用户是否安装了某一个插件?

navigation对象有一个plugins属性,它是一个plugin对象的集合,每个plugin对象都表示浏览器安装的一个插件,要访问plugins数组中的plugin对象,可以使用索引值获得。

 注意:IE有一个navigation.plugins集合,但其总是为空。

每个plugin对象都有四个属性,description,filename,length和name。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值