学习笔记——关于ActiveX和插件

来源:互联网 发布:智能电视和网络电视有什么区别 编辑:程序博客网 时间:2024/06/05 18:34
Firefox中添加插件
支持使用HTML的标准<object />元素在页面中嵌入插件,方式类似于IE。见后面。
使用非标准的<embed />元素。
举例:
<embed id="FlashPlugIn1"
src="topmenu.swf"
border=0
height=100
width=500
quality=high
type="application/x-shockwave-flash"
pluginspage="http://www.adobe.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"/>
<!--
上述属性解释:
quality用于确定Flash动画的画面质量
type属性用于指定浏览器使用什么插件来打开文件
pluginspage属性设置为指向插件创建者的页面的URL。如果用户计算机没有安装该插件,
网页就显示该指定的URL链接,用户就可以点击该链接加载插件
-->
JS中的navigator对象有一个plugins属性(注意,IE浏览器有一个navigator.plugins集合但是总是空),它是一个Plugin对象的集合,每个Plugin对象都表示浏览器安装
的一个插件。每个Plugin对象有4个属性:description、filename、length、name
例如:
Flash的name属性是Shockwave Flash,filename和description属性的含义非常明确、length属性表示插件支持的MIME类型数值
下面的JS代码可以重定向浏览器未安装所需插件的用户:
if(navigator.plugins["Shockwave Flash"])//若没有找到则返回undefined,在JS中也即被视为false
window.location.replace("my_flash_enabled_page.htm");
else
window.location.replace("my_no_flash_page.htm");




IE中检查和嵌入ActiveX控件
要在IE浏览器的页面中添加ActiveX控件,需要使用<object />元素。
实例:
<object classid="clid:D27CDB6E-AE6D-11CF-96B8-444553540000"
codebase="http://fpdownload.macromedia.com/get/shockwave/cabs/flash/swflash.cab"
id="flashPlayer1"
width="500"
height="100">
<param name="src" value="myFlashMovie.swf">
<param name="quality" value="height">
</object>
<!--
classid属性是ActiveX控件的创建者字编译时为控件分配的唯一ID
codebase属性是用于找到ActiveX控件的URL,可从此处下载
-->


使用插件和ActiveX控件
<html><head><script type="text/javascript">function buttonPlay_onclick(){document.audioPlayer.Play();}function buttonStop_onclick(){document.audioPlayer.Stop();}function window_onload(){var plugInInstalled=false;if(!window.ActiveXObject){var pluginsLength=navigator.plugins.length;for(var i=0;i<pluginsLength;i++){var pluginName=navigator.plugins[i].name.toLowerCase();if(pluginName.indexOf("quicktime")>-1){plugInInstalled=true;break;}}}else{if(document.audioPlayer.readyState==4)plugInInstalled=true;}if(!plugInInstalled){document.forms[0].buttonPlay.disabled=true;document.forms[0].buttonStop.disabled=true;alert("You need Quicktime to play the audio file!");}}onload=window_onload();</script></head><body><object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"codebase="http://www.apple.com/qtactivex/qtplugin.cab"id="audioPlayer" width="0" height="0"><param name="src" value="sound1.mp3"/><embed height="0" width="0" type="audio/mpeg" src="sound1.mp3"pluginspage="www.apple.com/quicktime/download"enablejavascript="true" name="audioPlayer"/></object></body></html>



首先要注意,用于非IE浏览器的<embed>元素时<object>元素的一个子元素。Firefox、Opera、Safari、
Chrome将忽略<object>元素,仅仅显示由<embed>元素定义的插件。同时,IE将忽略<object>中的<embed>
元素,尽管IE支持<embed>也是如此。但是注意不能吧<embed>放在外层,否则IE将会识别出两个