JavaScript获取flash对象与网上的有所不同

关于js获取flash对象,网上有非常多的例子,我也尝试了不少方法。
虽然都能用,但是没有我最想要的东西,
后来看了下百度的,虽然很规范,各种情况都考虑到了,但是代码量却不是不容乐观,
前前后后将近20行代码,压缩后也有 864 个字节。

所以本文诞生了。
我想测试并分享下网上收集的几种我比较满意的方法。
也顺便请大家帮忙测试下兼容性,有不兼容的在下面留个言,最好写上浏览器版本,这样我也好测试并修复代码。
下面来看代码吧。


代码如下:

function getFlashMovieObject( movieName ) {
if (window.document[movieName]) {
return window.document[movieName];
}
if (navigator.appName.indexOf("Microsoft Internet") == -1) {
if (document.embeds && document.embeds[movieName])
return document.embeds[movieName];
} else { // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
return document.getElementById(movieName);
}
}

这个方法比较保守,如果在 document 取到值了就直接返回,如果没取到,作者常用了 embeds 兼容替补来取,
当然IE是要特殊处理的,可是这里作者常用 getElementById ,而其他地方用 window 比较多。
当然 getElementById 是不会有错的,他取的是 object 的ID,因为embeds只有name没有ID。


代码如下:

var flash = document["myFlash"] || window["myFlash"];

这个方法比较简洁明了,我也就不多啰嗦了。


代码如下:

var flash = document["myFlash"];

这个是我在看了各种版本后,自己写的,因为我电脑上各种浏览器 + 虚拟机下 IE6-10 都测试通过,我也觉得纳闷了。
当然,如果正式用的话,我还是会选择方案一,但是有时候特殊情况,不需要兼容多浏览器的话,可以考虑这个哦。

下面是实际的例子,分别用三种方法取得flash对象后,并对flash进行控制测试。
如果有朋友发现不能测试通过的话,麻烦留下浏览器版本号和不能通过的方案,小弟先谢过了。

(0)

相关推荐

  • javascript检查浏览器是否支持flash的实现代码

    javascript检查浏览器是否支持flash,程序输出结果: <script> function flashChecker() { var hasFlash = 0; //是否安装了flash var flashVersion = 0; //flash版本 if (document.all) { var swf = new ActiveXObject('ShockwaveFlash.ShockwaveFlash'); if (swf) { hasFlash = 1; VSwf = swf.

  • JavaScript通过代码调用Flash显示的方法

    本文实例讲述了JavaScript通过代码调用Flash显示的方法.分享给大家供大家参考,具体如下: <script type="text/javascript" language="javascript" src="Scripts/swfobject.js"></script> <script language="javascript"> function load(){ var swfV

  • Java/JS获取flash高宽的具体方法

    JS: 设置 embed 高度和宽度可以改变 flash 的高度和宽度,从而获取. 复制代码 代码如下: <!DOCTYPE HTML> <html> <body> <embed src="test550X400.swf" id="flash" width="550px" height="400px"/> <script type="text/javascript

  • js怎么判断flash swf文件是否加载完毕

    js怎么判断flash是否加载完毕了呢? 我们怎么在flash加载完毕之时,回调一个我们设定的js函数? 这个问题,一直困扰了我很久,直到今天,请教了一个非常牛B的人物之后,突然来了感觉! 呵呵,也许,这个问题在你们看来不是问题,不过对于我来说,确实是个问题,因为我一直不知道该怎么判断swf文件是否加载完毕了? 从前都是只知道img.onload等等. 好了,言归正传,我们到底该怎样判断一个flash是否加载完了呢? 没错,就是轮询,然后判断flash的某个方法是否能正常运行? 示例如下(伪代码

  • javascript检测flash插件是否被禁用的方法

    本文实例讲述了javascript检测flash插件是否被禁用的方法.分享给大家供大家参考,具体如下: <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="Generator" content="EditPlus®"> <meta name="Author

  • JavaScript中跨域调用Flash的方法

    要做一个页面上短信息的提示音的功能,本来想用HTML5中Audio+IE下的bgsound来实现,可是发现每种浏览器对Audio的解码类型还不一样,顿时有种崩溃的感觉.没办法还是用Flash稳妥一点吧. 相信JavaScript与Flash交互大家都会有所接触或者有所耳闻.其实我也是第一次整这个玩意.具体的方法就不说了,很多资料. 开始的时候功能都做得差不多了,实现和没问题.可是就是到了最后,将swf文件放到资源服务上后再调用时出来问题,我就想肯定又是让人蛋疼的跨域问题(CrossDomain)

  • javascript获取flash版本号的方法

    本文实例讲述了javascript获取flash版本号的方法.分享给大家供大家参考.具体分析如下: 下面我们来介绍两个js函数判断用户是否安装了flash,如果安装了flash再来获取 flash版本号并且给出提示. 例1 获取各浏览器的版本号,如需获取具体版本号数字 复制代码 代码如下: function flashChecker() {     var hasFlash = 0; //是否安装了flash     var flashVersion = 0; //flash版本     var

  • js实现延时加载Flash的方法

    本文实例讲述了js实现延时加载Flash的方法.分享给大家供大家参考,具体如下: 当页面中包含自动播放视频的flash播放器时,flash的流媒体播放会一直不停的下载视频(哪怕你点击了播放暂停/停止也一样在不停下载),这样会影响到页面其它元素的加载. 最简单的优化办法就是让Flash一开始不要播放:当然,你可以修改fla源文件,让视频播放一开始就处于暂停,直到用户点击了播放按钮.但问题是,如果您嵌入的是没有源文件的flash动画,这种路子就走不通了. 思路: 可以先在放置flash的地方,放一张

  • clipboard.js无需Flash无需依赖任何JS库实现文本复制与剪切

    我们在网页上放置一个复制按钮,主要用来方便用户复制链接之类的复杂文本,以往的做法是,通过JS依靠Flash,甚至借助jQuery庞大的js库来实现文本复制到剪贴板的.今天我要给大家介绍的是一款极现代的,不需要flash,不依赖任何其他js库的非常小的插件,它叫clipboard.js. 运行效果图: HTML 首先加载本地clipboard.js文件. <script src="clipboard.min.js"></script> 然后就是在body中加上要复

  • JavaScript获取flash对象与网上的有所不同

    关于js获取flash对象,网上有非常多的例子,我也尝试了不少方法. 虽然都能用,但是没有我最想要的东西, 后来看了下百度的,虽然很规范,各种情况都考虑到了,但是代码量却不是不容乐观, 前前后后将近20行代码,压缩后也有 864 个字节. 所以本文诞生了. 我想测试并分享下网上收集的几种我比较满意的方法. 也顺便请大家帮忙测试下兼容性,有不兼容的在下面留个言,最好写上浏览器版本,这样我也好测试并修复代码. 下面来看代码吧. 复制代码 代码如下: function getFlashMovieObj

  • JavaScript 获取事件对象的注意点

    平时我们获取事件对象一般写法如下: 复制代码 代码如下: function getEvent(event) { return event || window.event // IE:window.event } 如果没有参数,也可写成(非IE :事件对象会自动传递给对应的事件处理函数,且为第一个参数): 复制代码 代码如下: function getEvent() { return arguments[0] || window.event // IE:window.event } 这样的写法在除

  • 使用javascript获取flash加载的百分比的实现代码

    复制代码 代码如下: <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <title>flash download</title> </head> <body> <object id="movie" classid="clsid:d27cdb6e-ae6d

  • 用JavaScript获取网页中的js、css、Flash等文件

    作者:马健邮箱:stronghorse@tom.com主页:http://stronghorse.yeah.net版本:1.01初始发布日期:2005.08.29最后更新日期:2005.09.28 目录一.前言二.从E书或网页中获取文件的一般步骤三.从E书或网页中获取链接进来的css文件四.从E书或网页中获取链接进来的js文件五.从E书或网页中获取Flash文件六.从E书或网页中获取背景音乐文件七.从E书中获取图像文件八.进入frame页面九.其它问题 一.前言 最近我又听到有人抱怨用miniK

  • JavaScript获取当前页面上的指定对象示例代码

    JavaScript如何获取当前页面上的指定对象. 方法如下: 复制代码 代码如下: document.getElementById(ID) //获得指定ID值的对象 document.getElementsByName(Name) //获得指定Name值的对象数组 document.all[] //很智能的东东 不过非WEB标准 document.getElementsByTagName //获得指定标签值的对象数组 下面给出例子,只需把注释去掉直接运行就可看出效果. 复制代码 代码如下: <

  • 用javascript获取当页面上鼠标光标位置和触发事件的对象的代码

    用javascript获取鼠标位置: 复制代码 代码如下: function mousePosition(ev) { if (ev.pageX || ev.pageY) { return { x: ev.pageX, y: ev.pageY }; } return { x: ev.clientX + document.body.scrollLeft - document.body.clientLeft, y: ev.clientY + document.body.scrollTop - docu

  • JavaScript获取对象在页面中位置坐标的方法

    本文实例讲述了JavaScript获取对象在页面中位置坐标的方法.分享给大家供大家参考,具体如下: <script language="javascript" type="text/javascript" > function getXY(Obj) { var h = Obj.offsetHeight; for (var sumTop=0,sumLeft=0;Obj!=document.body;sumTop+=Obj.offsetTop,sumLeft

  • JavaScript获取对象key的几种方法和区别

    目录 1.Object.keys()遍历自身可以枚举属性 2.Ojbect.values() /Ojject.entries() 3.for-in 遍历可枚举属性prototype 属性 4.hasOwnProperty 遍历可枚举属性 5.getOwnPropertyNames() 返回可枚举属性和不可枚举属性 6.getOwnPropertySymbols() 返回symbol类型的key属性, 7.对象对key的获取方法 8.对象声明/对象赋值 9.对象扩展 1.Object.keys()

  • javascript获取重复次数最多的字符

    javascript获取重复次数最多的字符 /** 取出字符串中重复字数最多的字符 */ var words = 'sdfghjkfastgbyhnvdstyaujskgfdfhlaa'; //创建字符串 var word, //单个字符 length; //该字符的长度 //定义输出对象 var max = { wordName : '', //重复次数最多的字符 wordLength : 0 //重复的次数 }; //递归方法,传入字符串 (function(words) { if (!wo

随机推荐