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


Posted in Javascript onApril 21, 2014

关于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进行控制测试。
如果有朋友发现不能测试通过的话,麻烦留下浏览器版本号和不能通过的方案,小弟先谢过了。

Javascript 相关文章推荐
javascript getElementsByName()的用法说明
Jul 31 Javascript
JQuery Ajax通过Handler访问外部XML数据的代码
Jun 01 Javascript
js下通过getList函数实现分页效果的代码
Sep 17 Javascript
boxy基于jquery的弹出层对话框插件扩展应用 弹出层选择器
Nov 21 Javascript
ZeroClipboard插件实现多浏览器复制功能(支持firefox、chrome、ie6)
Aug 30 Javascript
js函数与php函数的区别实例浅析
Jan 12 Javascript
JavaScript添加随滚动条滚动窗体的方法
Feb 23 Javascript
关于angular js_$watch监控属性和对象详解
Apr 24 Javascript
localstorage实现带过期时间的缓存功能
Jun 28 Javascript
vue 更改连接后台的api示例
Nov 11 Javascript
JS相册图片抖动放大展示效果的示例代码
Jan 29 Javascript
Axios取消重复请求的方法实例详解
Jun 15 Javascript
js unicode 编码解析关于数据转换为中文的两种方法
Apr 21 #Javascript
jquery form 加载数据示例
Apr 21 #Javascript
三种方式获取XMLHttpRequest对象
Apr 21 #Javascript
JavaScript中的Math 使用介绍
Apr 21 #Javascript
jQuery过滤选择器:not()方法使用介绍
Apr 20 #Javascript
如何用jquery控制表格奇偶行及活动行颜色
Apr 20 #Javascript
jquery复选框checkbox实现删除前判断
Apr 20 #Javascript
You might like
Thinkphp批量更新数据的方法汇总
2016/06/29 PHP
详谈php中 strtr 和 str_replace 的效率问题
2017/05/14 PHP
php字符串截取函数mb_substr用法实例分析
2019/06/25 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
在javascript将NodeList作为Array数组处理的方法
2010/07/09 Javascript
extjs tabpanel限制选项卡数量实现思路及代码
2013/04/02 Javascript
node.js中的fs.readlinkSync方法使用说明
2014/12/17 Javascript
jQuery统计指定子元素数量的方法
2015/03/17 Javascript
jQuery插件bxSlider实现响应式焦点图
2015/04/12 Javascript
javascript引用类型指针的工作方式
2015/04/13 Javascript
超精准的javascript验证身份证号的具体实现方法
2015/11/18 Javascript
jQuery实现图片文字淡入淡出效果
2015/12/21 Javascript
多种js图片预加载实现方式分享
2016/02/19 Javascript
走进javascript——不起眼的基础,值和分号
2017/02/24 Javascript
你可能不知道的JSON.stringify()详解
2017/08/17 Javascript
11个教程中不常被提及的JavaScript小技巧(推荐)
2019/04/17 Javascript
vue项目中使用eslint+prettier规范与检查代码的方法
2020/01/16 Javascript
Python while 循环使用的简单实例
2016/06/08 Python
使用python实现生成用户信息
2017/03/20 Python
Python利用itchat库向好友或者公众号发消息的实例
2019/02/21 Python
Django model update的多种用法介绍
2020/03/28 Python
PyQt5+Caffe+Opencv搭建人脸识别登录界面
2019/08/28 Python
Django 框架模型操作入门教程
2019/11/05 Python
Python中低维数组填充高维数组的实现
2019/12/02 Python
Django认证系统user对象实现过程解析
2020/03/02 Python
Paradigit比利时电脑卖场:购买笔记本、电脑、平板和外围设备
2016/11/28 全球购物
美国演唱会和体育门票购买网站:Ticketnetwork
2018/10/19 全球购物
小学生安全保证书
2014/02/01 职场文书
2014年消防工作实施方案
2014/02/20 职场文书
婚礼司仪主持词
2014/03/14 职场文书
实习单位证明范例
2014/11/17 职场文书
狮子林导游词
2015/02/03 职场文书
求职意向书范本
2015/05/11 职场文书
golang 如何通过反射创建新对象
2021/04/28 Golang
React如何创建组件
2021/06/27 Javascript
CSS中float高度塌陷问题的四种解决方案
2022/04/18 HTML / CSS