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 日历提醒系统( 兼容所有浏览器 )
Apr 07 Javascript
jquery下将选择的checkbox的id组成字符串的方法
Nov 28 Javascript
js处理自己不能定义二维数组的方法详解
Mar 03 Javascript
Javascript中的Array数组对象详谈
Mar 03 Javascript
javascript代码调试之console.log 用法图文详解
Sep 30 Javascript
从零开始学习Node.js系列教程四:多页面实现的数学运算示例
Apr 13 Javascript
bootstrap table使用入门基本用法
May 24 Javascript
Vue组件的使用及个人理解与介绍
Feb 09 Javascript
vue自定义指令用法经典实例小结
Mar 16 Javascript
解决Layui中templet中a的onclick参数传递的问题
Sep 20 Javascript
JavaScript常用进制转换及位运算实例解析
Oct 14 Javascript
用JS写一个发布订阅模式
Nov 07 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
php面向对象全攻略 (十四) php5接口技术
2009/09/30 PHP
解析thinkphp import 文件内容变量失效的问题
2013/06/20 PHP
Thinkphp和onethink实现微信支付插件
2016/04/13 PHP
PHP反射机制原理与用法详解
2017/02/15 PHP
详解如何在云服务器上部署Laravel
2017/06/30 PHP
解决thinkphp5未定义变量会抛出异常,页面错误,请稍后再试的问题
2019/10/16 PHP
在Javascript里访问SharePoint列表数据的实现方法
2011/05/22 Javascript
javascript复制对象使用说明
2011/06/28 Javascript
控制文字内容的显示与隐藏示例
2014/06/11 Javascript
Node.js中使用计时器定时执行函数详解
2014/08/15 Javascript
javascript搜索框点击文字消失失焦时文本出现
2014/09/18 Javascript
js与jquery回车提交的方法
2015/02/03 Javascript
简化版手机端照片预览组件
2015/04/13 Javascript
javascript中caller和callee详解
2015/08/10 Javascript
JavaScript实现自动生成网页元素功能(按钮、文本等)
2015/11/21 Javascript
Bootstrap php制作动态分页标签
2016/12/23 Javascript
jQuery实现弹窗下底部页面禁止滑动效果
2017/12/19 jQuery
解决vue.js this.$router.push无效的问题
2018/09/03 Javascript
JS前端知识点 运算符优先级,URL编码与解码,String,Math,arguments操作整理总结
2019/06/27 Javascript
js 计算月/周的第一天和最后一天代码
2020/02/01 Javascript
[01:15:45]DOTA2上海特级锦标赛B组小组赛#1 Alliance VS Spirit第一局
2016/02/26 DOTA
Python的Bottle框架中实现最基本的get和post的方法的教程
2015/04/30 Python
python通过函数属性实现全局变量的方法
2015/05/16 Python
Python3操作SQL Server数据库(实例讲解)
2017/10/21 Python
Numpy之random函数使用学习
2019/01/29 Python
Python 把序列转换为元组的函数tuple方法
2019/06/27 Python
美国维生素、补充剂、保健食品购物网站:Vitacost
2016/08/05 全球购物
名人珠宝设计师:Melinda Maria Jewelry
2019/03/06 全球购物
Cecil Mode法国在线商店:女性时尚
2021/01/08 全球购物
xml有哪些解析技术?区别是什么
2016/04/26 面试题
实习护理工作自我评价
2013/09/25 职场文书
数控专业应届生求职信
2013/11/27 职场文书
2013年学期结束动员演讲稿
2014/01/07 职场文书
临床医学生职业规划书范文
2014/10/25 职场文书
学习保证书
2015/01/17 职场文书
Go语言中break label与goto label的区别
2021/04/28 Golang