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 相关文章推荐
测试你的JS的掌握程度的代码
Dec 09 Javascript
JS实现密码框根据焦点的获取与失去控制文字的消失与显示效果
Nov 26 Javascript
Javascript基础学习笔记(菜鸟必看篇)
Jul 22 Javascript
微信小程序 JS动态修改样式的实现代码
Feb 10 Javascript
详解Weex基于Vue2.0开发模板搭建
Mar 20 Javascript
vue一步步实现alert功能
Jul 05 Javascript
详解angular应用容器化部署
Aug 14 Javascript
从0到1构建vueSSR项目之node以及vue-cli3的配置
Mar 07 Javascript
如何优雅地在vue中添加权限控制示例详解
Mar 07 Javascript
Vue 3.0 全家桶抢先体验
Apr 28 Javascript
在Vue中使用Select选择器拼接label的操作
Oct 22 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 多关键字 高亮显示实现代码
2012/04/23 PHP
php实现水印文字和缩略图的方法示例
2016/12/29 PHP
PHP封装XML和JSON格式数据接口操作示例
2019/03/06 PHP
laravel框架 laravel-admin上传图片到oss的方法
2019/10/13 PHP
PHP isset()及empty()用法区别详解
2020/08/29 PHP
jQuery Div中加载其他页面的实现代码
2009/02/27 Javascript
基于dom编程中 动态创建与删除元素的使用
2013/04/17 Javascript
基于Jquery代码实现手风琴菜单
2015/11/19 Javascript
javascript图片切换综合实例(循环切换、顺序切换)
2016/01/13 Javascript
CascadeView级联组件实现思路详解(分离思想和单链表)
2016/04/12 Javascript
web前端开发upload上传头像js示例代码
2016/10/22 Javascript
初探nodeJS
2017/01/24 NodeJs
layer.confirm取消按钮绑定事件的方法
2018/08/17 Javascript
vue动态设置img的src路径实例
2018/09/18 Javascript
vue+SSM实现验证码功能
2018/12/07 Javascript
详解Vue后台管理系统开发日常总结(组件PageHeader)
2019/11/01 Javascript
vue自定义switch开关组件,实现样式可自行更改
2019/11/01 Javascript
解决vue自定义全局消息框组件问题
2019/11/22 Javascript
Python探索之自定义实现线程池
2017/10/27 Python
Python实现判断一个字符串是否包含子串的方法总结
2017/11/21 Python
对变量赋值的理解--Pyton中让两个值互换的实现方法
2017/11/29 Python
快速入门python学习笔记
2017/12/06 Python
Python3中详解fabfile的编写
2018/06/24 Python
解读python如何实现决策树算法
2018/10/11 Python
解决python3 Pycharm上连接数据库时报错的问题
2018/12/03 Python
如何使用python进行pdf文件分割
2019/11/11 Python
python读取hdfs并返回dataframe教程
2020/06/05 Python
美国最大的宠物用品零售商:PetSmart
2016/11/14 全球购物
巴西男士个人护理产品商店:SHOP4MEN
2017/08/07 全球购物
巴西化妆品商店:Lojas Rede
2019/07/26 全球购物
初中生期末评语大全
2014/04/24 职场文书
留学经费担保书
2014/05/12 职场文书
培训计划通知
2015/07/15 职场文书
高一化学教学反思
2016/02/22 职场文书
导游词之西递宏村
2019/12/10 职场文书
Vue和Flask通信的实现
2021/05/19 Vue.js