使用swfobject.js时样式及传参的问题
swfobject.js
最近需要在项目中引入swf文件。
最初的写法:
<div id="recorderDiv">
<object id="recorder"
classid="clsid:d27cdb6e-ae6d-11cf-96b8444553540000"codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0"
align="center">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="<%=basePath %>flash/Recorder.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<param name="allowFullScreen" value="false" />
<param name="wmode" value="transparent" />
<embed src="<%=basePath %>flash/Recorder.swf" align="center" type="application/x-shockwave-flash" id="embed">
</object>
</div>
由于IE只支持对Object的解析,火狐、谷歌、Safari只支持对Embed的解析,所以这种写法在版本较高的浏览器中表现的还算正常。
但在IE8下,以上写法弹窗报错:参数无效。
引入swfobject.js后的写法:
function createRecorder() {
var flashvars = {};
var params = {};
var attributes = {
styleclass: "recorderClass"
}
swfobject.embedSWF("<%=basePath %>flash/Recorder.swf" ,"recorderDiv", "320", "220", "9.0.0", "<%=basePath %>flash/Recorder.swf"
, flashvars, params, attributes);
}
这种写法,使得兼容性的问题得以解决。但却带来两个问题:
一、此前为embed标签单独写了样式,这时需要换种方式制定样式
代码如上所示,使用styleclass指定<embed/>的样式
二、在为swf传参数的时候,只能使用json,这在flex中接收比较繁琐
举例来说,当只需要传递一个参数的时候,我们可以参与如下写法:
swfobject.embedSWF("<%=basePath %>flash/Recorder.swf?msgID=" + msgID ,"recorderDiv", "320", "220", "9.0.0", "<%=basePath %>flash/Recorder.swf?msgID=" + msgID, flashvars, params, attributes);
附:从网络下载的zip文件,有时可能因为文件过大而被上传者分成多个部分上传。这样下载的文件可能是:a.zip.001、a.zip.002.
对于这样的文件,有时利用压缩软件无法正常解压缩,可以在命令行运行如下命令:
copy /b a.zip.001+a.zip.002 a.zip 这个命令将两个文件合成一个
之后解压缩a.zip即可
使用swfobject.js时样式及传参的问题的更多相关文章
- JS XMLHttpRequest.upload.addEventListener 传参,回调
JS 回调函数,传参的办法. function uploadFile(t) { var fd = new FormData(); fd.append("_netLogo", doc ...
- js 调用接口并传参
注:需先引入 jquery.json-xx.min.js 1. 参数跟在url后面 var name = '王一'; var age = 18; $.ajax({ type : 'get', url ...
- js加减运算·传参
<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title> ...
- JS中onclick事件传参
美术馆案例中,需要将“增加一个img标签,放入大图片”这样一个函数封装,但是在调用的时候需要传参. <script type="text/javascript"> on ...
- js匿名函数使用&传参
function () { alert("error"); } //报错:匿名函数不能直接调用 使用 0x01 (function () { alert("Success ...
- js中给函数传参函数时,函数加括号与不加括号的区别
<!doctype html><html><head><script> function show() { alert("123") ...
- 使用SetInterval时函数不能传参问题
无论是window.setTimeout还是window.setInterval,在使用函数名作为调用句柄时都不能带参数,而在许多场合必须要带参数,这就需要想方法解决.经网上查询后整理如下:例如对于函 ...
- js中给正则传参、传递变量
js中验证字符串有时需要用到正则表达式,一般情况下直接写正则进行验证就行. 但是遇到需要把部分正则作为参数传递就麻烦一点,需要用到RegExp()对象. <script type="t ...
- Android与JS交互,json传参问题
一.JS调用Android的方法 JS调用安卓的方法,并且传递的参数为json格式的字符串(JSONObject.toString()), 例如: var json = {"name&quo ...
随机推荐
- VS CODE 下的 ESLint 安装以及使用
经过半年的前端磨练(就是不停地敲敲代码),自认水平提高的速度还是可以的. 现在回头看下写过的代码,发现以前写的代码真的是不忍惨睹. 比如 变量名乱起 风格多变 注释乱写或者没写 等等错误; 这不是一个 ...
- 利用cubieboard设置samba打印服务器
#注意安装下面软件前,先将cubieboard的动态地址改为静态地址! apt-get install samba #安装samba vi /etc/samba/smb.conf //配置 workg ...
- htnl5中设置文本单行显示,超出部分打省略号,鼠标移到文本时alt出全部文本内容
Html代码: 1.<span class="my-span" title="无数无数无数无数无数">机构</span> Css样式: ...
- 《CoffeeScript应用开发》学习:第三章-构建简单的应用程序
字符串插值 CoffeeScript提供了一种更好的构建字符串的解决方案.在双引号字符串(单引号无效)中使用#{}包含一个动态的值. str = 'Hello, CoffeeScript.' cons ...
- C#中一种可调用的异常处理方法
之前做异常处理时,感觉很麻烦,每个地方都要写try和catch,在博客园上看到一篇文章http://www.cnblogs.com/artech/archive/2012/10/28/automati ...
- ajaxfileupload.js的简单使用
上传文件 未选择任何文件 引入 <script src="../javaScript/ajaxfileupload.js"></script> <bu ...
- error-2016-4-20
问题: Compilation ErrorDescription: An error occurred during the compilation of a resource required to ...
- docker安装
系统要求:需要一个64位的centos7操作系统和版本3.10或更高版本的Linux内核 开始安装: uname -r //查看内核版本yum -y update //更新系统更新到最新 #安装d ...
- sed 命令使用
ios 的sed 命令 跟linux sed 命令有区别 # 所有的a 替换成b sed -i "" 's/a/b/g' #删除掉所有包含a的行 sed -i "/a/ ...
- Android 4.0 源代码结构
Android源码的第一级目录结构 Android/abi (abi相关代码.ABI:application binary interface,应用程序二进制接口) Android/bioni ...