使用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 ...
随机推荐
- Linux Top 命令解析 比较详细
[尊重原创文章出自:http://www.jb51.net/LINUXjishu/34604.html] TOP是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占 ...
- pdf 切割成圖片的方法
/// <summary> /// 将PDF文档转换为图片的方法 /// </summary> /// <param na ...
- 关于adb shell getprop相关
adb shell : getprop 查看机器的全部信息参数 getprop ro.serialno 查看机器的序列号 getprop ro.carrier 查看机器的CID号 getprop ro ...
- python 获取一个列表有多少连续列表
python 获取一个列表有多少连续列表 例如 有列表 [1,2,3] 那么连续列表就是 [1,2],[2,3],[1,2,3] 程序实现如下: 运行结果:
- 微信支付开发-当前页面的URL未注册
微信支付的开发设置要求设置微信支付可以发起的目录. 当出现“当前页面的URL未注册”的错误时,检查你的授权目录(一般是未填写或填写有误),注意要二级或者三级目录完全匹配.
- CSS3制作同心圆进度条
1.css代码 此处在制作进度条时,是旋转进度条的半圆(红色),背景使用灰白(如果使用红色作为背景,旋转灰白遮罩,在浏览器中可能会有渲染bug) .wrapper{ display:block;pos ...
- Redis从基础命令到实战之散列类型(Hash)
从上一篇的实例中可以看出,用字符串类型存储对象有一些不足,在存储/读取时需要进行序列化/反序列化,即时只想修改一项内容,如价格,也必须修改整个键值.不仅增大开发的复杂度,也增加了不必要的性能开销. 一 ...
- 关于rank、dense_rank、ROW_NUMBER及OVER(PARTITION BY)、OVER(ORDER BY)的一些用法
CREATE TABLE t_harry ( id int NOT NULL, ) DEFAULT NULL, ChannelID ) DEFAULT NULL, TimeStamp datetime ...
- ios AFNetworking 3.0 报错 : *** Assertion failure in -[AFHTTPRequestSerializer requestWithMethod:URLString:parameters:error:],
AFNetWorking[:] *** Assertion failure -- :::] *** Terminating app due to uncaught exception 'NSInter ...
- 学习C:打印输入中单词长度的水平方向直方图
#include <stdio.h>#define IN 1#define OUT 0#define MAXWL 16 main() { /*打印输入单词长度的水平直方图*/ int c, ...