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日期对象的dateAdd与dateDiff方法
Nov 18 Javascript
JS实现判断滚动条滚到页面底部并执行事件的方法
Dec 18 Javascript
JavaScript中的pow()方法使用详解
Jun 15 Javascript
jQuery实现鼠标经过购物车出现下拉框代码(推荐)
Jul 21 Javascript
使用base64对图片的二进制进行编码并用ajax进行显示
Jan 03 Javascript
基于JavaScript实现数码时钟效果
Mar 30 Javascript
JavaScript实现的鼠标跟随特效示例【2则实例】
Dec 22 Javascript
推荐15个最好用的JavaScript代码压缩工具
Feb 13 Javascript
详解json串反转义(消除反斜杠)
Aug 12 Javascript
ant-design-vue 实现表格内部字段验证功能
Dec 16 Javascript
Vue程序化的事件监听器(实例方案详解)
Jan 07 Javascript
Vue ECharts实现机舱座位选择展示功能
May 15 Vue.js
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程序
2006/10/09 PHP
ubuntu 编译安装php 5.3.3+memcache的方法
2010/08/05 PHP
PHP中获取变量的变量名的一段代码的bug分析
2011/07/07 PHP
php preg_filter执行一个正则表达式搜索和替换
2012/02/27 PHP
PHP中include与require使用方法区别详解
2013/10/19 PHP
php导入csv文件碰到乱码问题的解决方法
2014/02/10 PHP
解决cPanel无法安装php5.2.17
2014/06/22 PHP
详解PHP实现定时任务的五种方法
2016/07/25 PHP
使用YII2框架实现微信公众号中表单提交功能
2017/09/04 PHP
PHP开启目录引索+fancyindex漂亮目录浏览带搜索功能
2019/09/23 PHP
JavaScript使用prototype定义对象类型(转)[
2006/12/22 Javascript
使用javascript过滤html的字符串(注释标记法)
2013/07/08 Javascript
JavaScript中的Math.E属性使用详解
2015/06/12 Javascript
JavaScript构造函数详解
2015/12/27 Javascript
jQuery实现的简单拖拽功能示例
2016/09/13 Javascript
Vue之Watcher源码解析(2)
2017/07/19 Javascript
浅析vue插槽和作用域插槽的理解
2019/04/22 Javascript
vue实现随机验证码功能的实例代码
2019/04/30 Javascript
浅谈Vue SSR中的Bundle的具有使用
2019/11/21 Javascript
微信小程序表单验证WxValidate的使用
2019/11/27 Javascript
[02:57]DOTA2英雄基础教程 风行者
2014/01/16 DOTA
python简单实现计算过期时间的方法
2015/06/09 Python
对numpy 数组和矩阵的乘法的进一步理解
2018/04/04 Python
Python采集猫眼两万条数据 对《无名之辈》影评进行分析
2018/12/05 Python
CentOS6.9 Python环境配置(python2.7、pip、virtualenv)
2019/05/06 Python
Python占用的内存优化教程
2019/07/28 Python
python3格式化字符串 f-string的高级用法(推荐)
2020/03/04 Python
Python 实现简单的客户端认证
2020/07/29 Python
中级会计职业生涯规划范文
2014/01/16 职场文书
学习全国两会精神心得体会范文
2014/03/17 职场文书
撤诉状格式范本
2015/05/19 职场文书
交通事故代理词范文
2015/05/23 职场文书
高中生物教学反思
2016/02/20 职场文书
2019最新企业员工考勤管理制度(通用版)!
2019/07/02 职场文书
Python 处理表格进行成绩排序的操作代码
2021/07/26 Python
解决redis批量删除key值的问题
2022/03/23 Redis