记ie8及以下版本ie的flash的addCallback的一坑
近来有一需求,播放声音,我在高端浏览器实现了html5 audio标签、低端浏览器实现了flash兼容。但是在调试ie8以下的浏览器发现js死活调不了flash里的addCallback的方法,总报错:Object doesn't support this property or method。在stackoverflow上找的解决方法有:
1、延时调用容器方法
2、改变创建节点顺序法:先创建一个div,append到dom树,再创建flash节点append到div里
折腾了大半天,以上都试过了,都不好使。
最后终于找到解决方法:减少暴露的addCallback,当暴露的方法>=3时,ie8就有可能会报错。最先的适合我有4个暴露的容器方法,最后减少为1个,用一个容器方法传参去调用相应的原来需要暴露的方法。
private function init(): void {
var e = ExternalInterface;
if (e.available) {
e.addCallback('doAction', this.doAction);
}
}
public function doAction(_action: String = '', ...args): void {
switch(_action) {
case 'methodA':
this.methodA.call(this, args);
break;
case 'methodB':
this.methodB.apply(this, args);
break;
case 'methodC':
this.methodC();
break;
}
}
真心坑人啊ie这个bug。。。
==================================================
作者:hotcho
出处:http://www.cnblogs.com/cos2004/p/3525111.html
==================================================
记ie8及以下版本ie的flash的addCallback的一坑的更多相关文章
- 从Chrome 69.0 版本起,Flash权限受到进一步限制,默认仅在当前浏览器会话有效。
# 69.0 之后的版本 ## 从Chrome 69.0 版本起,Flash权限受到进一步限制,默认仅在当前浏览器会话有效.关闭Enable Ephemeral Flash Permissions , ...
- 解决包含在label标签下的checkbox在ie8及以下版本点击事件无效果兼容的问题
问题描述: 在IE8及以下版本时,点击label标签无法自动触发checkbox的click事件,导致无法产生希望的效果. 原HTML代码: <div class="col-s ...
- [.NET跨平台]Jeuxs独立版本的便利与过程中的一些坑
本文环境与前言 之前写过一篇相关的文章:在.NET Core之前,实现.Net跨平台之Mono+CentOS+Jexus初体验 当时的部署还是比较繁琐的,而且需要联网下载各种东西..有兴趣的可以看看, ...
- [.NET跨平台]Jexus独立版本的便利与过程中的一些坑
本文环境与前言 之前写过一篇相关的文章:在.NET Core之前,实现.Net跨平台之Mono+CentOS+Jexus初体验 当时的部署还是比较繁琐的,而且需要联网下载各种东西..有兴趣的可以看看, ...
- jwPlayer实现支持IE8及以下版本避免出错的方法
jwplayer在支持Html5的情况下会自动使用html5的video和audio标签进行播放视频和音频.但是在IE中版本低于IE9时 <script src="jwplayer.h ...
- Chrome浏览器 54 版本显示“Adobe flash player已过期”问题解决
背景 电脑上面的软件很久没升级,用腾讯电脑管家批量做了一次升级,结果Chrome浏览器升级到54版本flash控件没法用了. 第一时间想到直接到flash官网下载一个新的进行安装,结果官网检测显示,C ...
- 记一次netty版本冲突,报java.lang.NoSuchMethodError: io.netty.util.internal.ObjectUtil.checkPositive的问题
elasticsearch 5.6中使用TransportClient初始化抛异常 在引入elasticsearch5.6的transportclient包中,会引入netty进行通信. <!- ...
- ie8及其以下版本兼容性问题之placeholder实现
1. 普通浏览器下修改placeholder颜色 因为每个浏览器的CSS选择器都有所差异,所以需要针对每个浏览器做单独的设定. 示例: input::-webkit-input-placeholder ...
- ie8及其以下版本兼容性问题之input file隐藏上传文件
文件上传时,默认的file标签很难看,而且每个浏览器下都有很大差距.因此我们基本都把真正的file标签给隐藏,然后创建一个标签来替代它.但是由于IE出于安全方面的考虑上传文件时必须点击file的浏览按 ...
随机推荐
- shell函数-页面跳转练习->
实现思维导图-> 实现思路-> 分析:1:先把三个页面的流程作为函数先写下来,定义在脚本的开头,方便下面的调用.2:先从一个流 程开始做,其他的流程类似,比如nginx3:整体实现思路是 ...
- 洛谷P2018消息传递
传送门啦 这个树形dp就没那么简单了,运用了一下贪心的思想 不同的排序方法对应着不同的转移方程,如果我们用 $ f[x] = max(f[x] , b[i] +cnt - i + 1) $ 来进行转移 ...
- 使用html+css+js实现魔性的舞蹈
使用html+css+js实现魔性的舞蹈,让我们燥起来!!! 效果图: 代码如下,复制代码即可使用: <!DOCTYPE html> <html > <head> ...
- 动态SQL和PL/SQL的EXECUTE选项分析
EXECUTE IMMEDIATE代替了以前Oracle8i中DBMS_SQL package包.它解析并马上执行动态的SQL语句或非运行时创建的PL/SQL块.动态创建和执行SQL语句性能超前,EX ...
- Oracle学习笔记:trunc函数
在Oracle中可以使用trunc函数进行日期截取和数字截取,具体使用方法如下: 1.trunc(for dates) 日期截取 语法:trunc(date,[fmt]) select trunc(s ...
- MySQL学习笔记:case when
一.MySQL case when的三种用法: 1.case 字段 when, 字段的具体值: select a.*, case sex when '1' then '男' else '女' end ...
- java批量生成excel文件
1.导入用于操作excel的jar,地址:https://pan.baidu.com/s/1qXADRlU 2.生成excel使用的模版文件,地址:https://pan.baidu.com/s/1c ...
- 标准C++中的String类的使用
要使用标准C++中的String类,必须包含#include<string>(注意不是<string.h>带.h的是C语言中的头文件) 作者:耑新新,发布于 博客园 转载请注 ...
- LoadRunner测试ajax框架,回放后系统中没有产生数据解决方法
1.QTP11 下载地址:http://www.genilogix.com/downloads/unified-functional-testing/quicktest-professional-11 ...
- thinkphp中导入和使用阿里云OSSsdk
照做绝对行,在ThinkPHP中,第三方库都放在ThinkPHP/Library/Vendor/路径下. 1.下载OSS PHP SDK:https://help.aliyun.com/documen ...