SlideShare ist ein Scribd-Unternehmen logo
1 von 59
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"  codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="400" height="300" id="movie" > <param name="movie" value="movie.swf"/> <embed src="movie.swf" quality="high" width="400" height="300" name="movie" type="application/x-shockwave-flash" plug inspage="http://www.macromedia.com/go/getflashplayer"/>    </object>  <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="800" height="600" id="myFlashContent">  <param name="movie" value="untitled.swf" />  <!--[if !IE]>-->  <object type="application/x-shockwave-flash" data="untitled.swf" width="800" height="600">  <!--<![endif]-->  <a href="http://www.adobe.com/go/getflashplayer">  <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />  </a>  <!--[if !IE]>-->  </object>  <!--<![endif]-->  </object>  Flash对象在(x)HTML中的格式和参数及安全性 龙藏 || KingFo	     			2010-03-11 内网: longzang@taobao.com 外网:oicuicu@gmail.com
1. 约定 !HTML5		表示非HTML5规范。 !IE表示非微软IE浏览器。 IE		表示仅微软IE浏览器 属性、标签和参数都基本采用小写,以符合XHTML规范。 承载页:即Flash对象承载的 HTML页面及其运行环境。 适用主流浏览器: 图片来源:http://microidc.com/tb/share/index.html
2. 经常使用的标签 <obejct> <embed>(不推荐) 不是标准属性(HTML5 中才是) 不方便Flash对象JS代码自动化管理。 不方便偷懒     当然随着HTML5的普及以及手机浏览器的支持,<embed>标签还会再回来的
3. <obejct> 重温定义 用于包含诸如图片(不推荐,请使用<img>)、音频、视频、Java applets、ActiveX、PDF、Flash等
3.1 <obejct>标签属性(Attributes) id name class classid		Windows 注册表值 ||URL!HTML5 type		MIME 类型 data		Object数据位置 MIME :Multipurpose Internet Mail Extensions 多功能Internet 邮件扩充服务 固定的classid :  clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 其他参考:http://www.w3schools.com/tags/tag_object.asp
3.2 <obejct>标签子节点 <param> other…
3.3 <param>定义和使用 是<obejct>的运行时(run-time)配置 因此在使用类似Firebug HTML 修改HTML此节点属性是无效的。 传入的是变量(variables)或参数(parameters)
3.4 <param>标签属性(Attributes) name		唯一标识符 value 		规定参数的值 其他参考: http://www.w3school.com.cn/html5/html5_param.asp
4. Flash 对象的全部参数 movie wmode flashvars allowscriptaccess allownetworking allowfullscreen play loop menu ,[object Object]
salign
quality
bgcolor
devicefont
base
swliveconnect
seamlesstabbing,[object Object]
4.1.1  movie 必选 IE Flash对象存放路径 <param 	name="movie" 	value=“path2swf.swf"> 
4.1.2	wmode 可选 window		“最顶端”		“独立窗口” opaque		“带背景色”		“嵌入” transparent	“透明背景”		“嵌入”可能降低动画性能   默认	window 解决HTML层次问题请使用”嵌入” 的属性。 <param 	name=“ wmode ” 	value=“opaque ”> 		<!--  页面背景没有要求用 --> <param 	name=“ wmode ” 	value=“transparent ”> 	<!--  页面背景有要求用 -->
4.1.3	flashvars 可选 发送根级变量(root level variables)给Flash对象 最大64KB字符串容量 &分隔开的name=variable的组合 特殊或/和不可打印字符需要转换。 variable  的值可能 需要   encodeURIComponent 单一一个空格可以用   +表示 类同  movie.swf ? a=1&b=2 <param name="flashvars" value="a=1&b=2" /> <param name="flashvars" value="a=1&amp;b=2" /> <param name=“flashvars” value=“jsonData={‘a’:1,’b’:2}" />
4.1.3.1	flashvars 规范 JSON数据需要将” 改为’  。因此需要在 Flash对象内进行还原。 JSON数据的value,XML字符串、以及普通的variable建议进行encodeURIComponent以免发生意外。 若需要纯静态输入参数则请避免flash对象区分参数或变量的&符号。 关于json数据value:即当若json 为{ “data”:” value”} 或 [“value”]中的value部分。请进行对其中的value处理。
4.1.4	allowscriptaccess 可选 always		 来自任何域都可和当前承载页js通讯。 sameDomain	 只有和Flash对象来源域相同的页面允许js通讯。 never 关闭承载页和Flash对象通讯。 默认sameDomain(Flashplayer9.0.115.0+ )
4.1.4.1	受影响AS3API flash.system.fscommand() 老式的调用外部命令或JS方法。 ExternalInterface.call() 新式的调用外部JS方法。 flash.net.navigateToURL() 跳转页面,类似 <a>, 可以指定herf 和 target
4.1.5	allownetworking 可选 all		SWF 文件中允许使用所有网络 API  internal		SWF 文件可能不调用浏览器导航或浏览器交互 API  。JS自然在其中。 none		关闭所有网络 API  默认值 all
4.1.5.1	受影响AS3API 当为 internal,相当allowscriptaccess =nerver: navigateToURL() fscommand()  ExternalInterface.call()  当为 none,除internal禁止的API外: sendToURL()  FileReference.download()  FileReference.upload()  Loader.load()  LocalConnection.connect()  LocalConnection.send()  NetConnection.connect()  NetStream.play()  ,[object Object]
SharedObject.getLocal()
SharedObject.getRemote()
Socket.connect()
Sound.load()
URLLoader.load()
URLStream.load()
XMLSocket.connect()
……,[object Object]
4.2	Flash 对象的显示控制参数 play loop menu quality scale salign ,[object Object]
devicefont,[object Object]
4.2.2	loop 可选 true false 默认false 播放到最后一帧时是否重新开始播放。
4.2.3	menu 可选 true		显示完整的菜单 false		仅仅显示设置选项和about选项 默认true 右键点击Flash对象时的右键菜单
4.2.3.1	menu示例 未设置 或true false Debug 版本 一般用户版本
4.2.4	quality 可选 best		 high autohigh medium autolow low 默认 high 回放期间使用的消除锯齿级别 类似menu为true时“品质”调节 提供最佳的显示品质,而不考虑回放速度。 使外观优先于回放速度,它始终应用消除锯齿功能。 在开始时是回放速度和外观两者并重,但在必要时会牺牲外观来保证回放速度。 会应用一些消除锯齿功能,但并不会平滑位图。 优先考虑速度,但是也会尽可能改善外观。 使回放速度优先于外观,而且从不使用消除锯齿功能
4.2.4.1	quality 示例
4.2.6	scale 可选 showall 	显示全部保持原始宽高比 noborder 	无边界保持原始宽高比 exactfit		适应性填充不保持原始宽高比 noscale		不缩放原始高宽 默认showall  可视区域的缩放模式。 如果AS3中有设定了scaleMode为noScale则此属性失效。
4.2.6.1	scale示例 noborder  showall  exactfit
4.2.7	salign  可选 l 		按左边对齐 t			按上边对齐 r			按右边对齐 b			按下边对齐 tl		按左上边对齐 tr		按右上边对齐 bl		按左下边对齐 br		按右下边对齐 缩放对齐方式。 缩放时,按照此规则进行贴边对齐,如果有需要则剪掉其他边。
4.2.7.1	salign示例 l b r t tl tr bl l
4.2.5	bgcolor  可选 #RRGGBB	(十六进制 RGB 值) Flash 对象背景色 当wmode为非	transparent时有效。
4.2.5.1	bgcolor <param name="bgcolor" value="#FF0000">
4.2.6	 devicefont 可选 true false 默认false 对于未选定“设备字体”选项的静态文本对象是否仍使用设备字体进行绘制。 Flash包含了3种设备字体 _sans (类似 Helvetica 或 Arial)  _serif (类似  Times Roman)  _typewriter(类似 Courier)
4.3Flash 对象的其他参数 base swliveconnect seamlesstabbing
4.3.1	 base 可选 相对路径的基址 默认为空 如果设定Flash对象中的相对路径将通过此处定义的目录查找。 这在诸如Flash对象被iframe嵌套时比较有用。
4.3.2	swliveconnect 可选 true false 默认false 选择启动Flash时是否先启动JAVA。 启动 Java 会显着增加 SWF 文件的启动时间;因此,只有在必要时才应将此标签设置为 true。 仅适用于 embed 标签。 使用 fscommand() 动作可从独立的放映文件中启动 Java。 KingFo建议忽略该标签。
4.3.3	seamlesstabbing 可选 true		可以移出焦点到下个页面结构。 false		仅在table中。 默认true 是否启动无缝Table选择 在使用Table键时,焦点是否可以移出Flash对象。
4.4		关于fallback Some embedded content elements can have fallback content: content that is to be used when the external resource cannot be used (e.g. because it is of an unsupported format). The element definitions state what the fallback is, if any. 					------HTML5 Spec
4.4	.1	我们的fallback 我们的fallback是什么? 别急,可以偷看下4.5.1  或4.5.2 粉色部分。 如何被启用? 当客户端未安装FlashPlayer 当Flash 对象(SWF)请求为404时是否被启用? 很遗憾,不会。 另据陈成反应fallback在非IE下内容都会被请求,如图片。见http://www.chencheng.org/blog/2010/02/04/flash-fallback-content/
4.5	“懒”的分享
4.5.1	SWFObejcet 静态官方式 <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="950" height="203" id="myFlashContent"> <param name="movie" value="http://img01.taobaocdn.com/tps/i1/T1S1tkXgliy0NtxVjX.swf" /> <param name="allowfullscreen" value="true" /> <param name="allowscriptaccess" value="always" /> <param name="allownetworking" value="all" /> <param name="flashvars" value="jdata=[{'href':'http://bbs.taobao.com/catalog/thread/154505-5469566.htm','img':'http://img01.taobaocdn.com/tps/i1/T1QmpuXnNjXXXXXXXX-160-170.jpg','text':'淘宝美容馆达人召集令'},{'href':'http://bbs.taobao.com/catalog/thread/154506-5112835.htm','img':'http://img08.taobaocdn.com/tps/i8/T1WvFuXd4dXXXXXXXX-160-170.jpg','text':'我是什么控开招晒客'},{'href':'http://bangpai.taobao.com/group/thread/40046-5062800.htm','img':'http://img07.taobaocdn.com/tps/i7/T1ilFuXb4uXXXXXXXX-160-170.jpg','text':'古典性感清纯?'},{'href':'http://bangpai.taobao.com/group/thread/40046-5543420.htm','img':'http://img08.taobaocdn.com/tps/i8/T1c8FuXeXuXXXXXXXX-160-170.jpg','text':'麻辣老妈S身材'}]" /> <param name="wmode" value="transparent" /> 		<!--[if !IE]>--> <object type="application/x-shockwave-flash" data="http://img01.taobaocdn.com/tps/i1/T1S1tkXgliy0NtxVjX.swf" width="950" height="203"> <param name="allowfullscreen" value="true" /> <param name="allowscriptaccess" value="always" /> <param name="allownetworking" value="all" /> <param name="scale" value="exactfit" /> <param name="flashvars" value="jdata=[{'href':'http://bbs.taobao.com/catalog/thread/154505-5469566.htm','img':'http://img01.taobaocdn.com/tps/i1/T1QmpuXnNjXXXXXXXX-160-170.jpg','text':'淘宝美容馆达人召集令'},{'href':'http://bbs.taobao.com/catalog/thread/154506-5112835.htm','img':'http://img08.taobaocdn.com/tps/i8/T1WvFuXd4dXXXXXXXX-160-170.jpg','text':'我是什么控开招晒客'},{'href':'http://bangpai.taobao.com/group/thread/40046-5062800.htm','img':'http://img07.taobaocdn.com/tps/i7/T1ilFuXb4uXXXXXXXX-160-170.jpg','text':'古典性感清纯?'},{'href':'http://bangpai.taobao.com/group/thread/40046-5543420.htm','img':'http://img08.taobaocdn.com/tps/i8/T1c8FuXeXuXXXXXXXX-160-170.jpg','text':'麻辣老妈S身材'}]" /> <param name="wmode" value="transparent" /> 		<![endif]--> <a href="http://www.adobe.com/go/getflashplayer"> 			<img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /> 		</a> 		<!--[if !IE]></object>								<!--<![endif]-->							 </object> 生产此式可以用这款工具生成: 	http://code.google.com/p/swfobject/wiki/generator
4.5.2	神奇的偷懒写法 <object  type="application/x-shockwave-flash"  data="http://img01.taobaocdn.com/tps/i1/T1S1tkXgliy0NtxVjX.swf"  width="950" height="203" id="myFlashContent"> <param name="movie" value="http://img01.taobaocdn.com/tps/i1/T1S1tkXgliy0NtxVjX.swf" /> <param name="allowfullscreen" value="true" /> <param name="allowscriptaccess" value="always" /> <param name="allownetworking" value="all" /> <param name="flashvars" value="jdata=[{'href':'http://bbs.taobao.com/catalog/thread/154505-5469566.htm','img':'http://img01.taobaocdn.com/tps/i1/T1QmpuXnNjXXXXXXXX-160-170.jpg','text':'淘宝美容馆达人召集令'},{'href':'http://bbs.taobao.com/catalog/thread/154506-5112835.htm','img':'http://img08.taobaocdn.com/tps/i8/T1WvFuXd4dXXXXXXXX-160-170.jpg','text':'我是什么控开招晒客'},{'href':'http://bangpai.taobao.com/group/thread/40046-5062800.htm','img':'http://img07.taobaocdn.com/tps/i7/T1ilFuXb4uXXXXXXXX-160-170.jpg','text':'古典性感清纯?'},{'href':'http://bangpai.taobao.com/group/thread/40046-5543420.htm','img':'http://img08.taobaocdn.com/tps/i8/T1c8FuXeXuXXXXXXXX-160-170.jpg','text':'麻辣老妈S身材'}]" /> <param name="wmode" value="transparent" /> <a href="http://www.adobe.com/go/getflashplayer"> 			<img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /> 		</a> </object>
4.5.2.1	静态官方式数据 IE FireFox fallback 请忽略此处 23requests
4.5.2.2	懒后的数据 IE 请忽略此处 FireFox fallback 23   requests
4.5.2.2	偷懒后的纠结 有个小遗憾:由于data和movie ,IE会加载两次: 第一次来自浏览器的 data解析。 第二次来自ActiveX 的movie的获取。 虽然第二次将从缓存区(cache)取。因此会浪费一个 请求数。 在Firefox下无论官方标准式还是偷懒方式 都会加载2次。见数据    标记处
4.5.2.3	关于手机一些疑惑。。 由于手机<!--[if !IE]>--> 这类HACK标签支持情况比较 难堪。。。 因此偷懒写法虽然避免了,但未知是否微软的移动设备上使用了ActiveX。了解的同学可以告诉我。 因此总结和展望的HTML5,<embed>标签依然会东山再起,用于“合法”的 区分IE和非IE的世界(ActiveX或NPRuntime)

Weitere ähnliche Inhalte

Andere mochten auch

【前端Mvc】之豆瓣说实践
【前端Mvc】之豆瓣说实践【前端Mvc】之豆瓣说实践
【前端Mvc】之豆瓣说实践
taobao.com
 
1 kapitulli ii pasqyrat financiare
1 kapitulli ii  pasqyrat financiare1 kapitulli ii  pasqyrat financiare
1 kapitulli ii pasqyrat financiare
Menaxherat
 
Master key system part 07
Master key system   part 07Master key system   part 07
Master key system part 07
canei2day
 
Master key system part 18
Master key system   part 18Master key system   part 18
Master key system part 18
canei2day
 
Master key system part 10
Master key system   part 10Master key system   part 10
Master key system part 10
canei2day
 
生態攝影作品播放檔(101)
生態攝影作品播放檔(101)生態攝影作品播放檔(101)
生態攝影作品播放檔(101)
Josephine C
 
一分鐘掌握七大護心原則
一分鐘掌握七大護心原則一分鐘掌握七大護心原則
一分鐘掌握七大護心原則
Josephine C
 

Andere mochten auch (20)

动态 Css sprite
动态 Css sprite动态 Css sprite
动态 Css sprite
 
Flexera Software Consulting
Flexera Software ConsultingFlexera Software Consulting
Flexera Software Consulting
 
Prezentimi
Prezentimi Prezentimi
Prezentimi
 
【前端Mvc】之豆瓣说实践
【前端Mvc】之豆瓣说实践【前端Mvc】之豆瓣说实践
【前端Mvc】之豆瓣说实践
 
Social Marketing & PR ROI - Focus roundtable
Social Marketing & PR ROI - Focus roundtableSocial Marketing & PR ROI - Focus roundtable
Social Marketing & PR ROI - Focus roundtable
 
Seo search-optimization-rankings-analysis-expansive-internet-marketing-relate...
Seo search-optimization-rankings-analysis-expansive-internet-marketing-relate...Seo search-optimization-rankings-analysis-expansive-internet-marketing-relate...
Seo search-optimization-rankings-analysis-expansive-internet-marketing-relate...
 
Simplifying social business
Simplifying social businessSimplifying social business
Simplifying social business
 
Convite De Formatura Diego Rodrigues Santos
Convite De Formatura   Diego Rodrigues SantosConvite De Formatura   Diego Rodrigues Santos
Convite De Formatura Diego Rodrigues Santos
 
Report Splinternetmarketing.Com Internet Marketing Services 5 9 2012
Report Splinternetmarketing.Com Internet Marketing Services   5 9 2012Report Splinternetmarketing.Com Internet Marketing Services   5 9 2012
Report Splinternetmarketing.Com Internet Marketing Services 5 9 2012
 
1 kapitulli ii pasqyrat financiare
1 kapitulli ii  pasqyrat financiare1 kapitulli ii  pasqyrat financiare
1 kapitulli ii pasqyrat financiare
 
Master key system part 07
Master key system   part 07Master key system   part 07
Master key system part 07
 
Master key system part 18
Master key system   part 18Master key system   part 18
Master key system part 18
 
Master key system part 10
Master key system   part 10Master key system   part 10
Master key system part 10
 
Netbeans Open GL Installation Tutorials
Netbeans Open GL Installation Tutorials Netbeans Open GL Installation Tutorials
Netbeans Open GL Installation Tutorials
 
Elements of success: Southern district forum
Elements of success: Southern district forumElements of success: Southern district forum
Elements of success: Southern district forum
 
生態攝影作品播放檔(101)
生態攝影作品播放檔(101)生態攝影作品播放檔(101)
生態攝影作品播放檔(101)
 
Siguria - Informatika Biznesore
Siguria - Informatika BiznesoreSiguria - Informatika Biznesore
Siguria - Informatika Biznesore
 
Take easy
Take easyTake easy
Take easy
 
ACA-ACE Framework Alliance Contract - 25 February 2016
ACA-ACE Framework Alliance Contract - 25 February 2016ACA-ACE Framework Alliance Contract - 25 February 2016
ACA-ACE Framework Alliance Contract - 25 February 2016
 
一分鐘掌握七大護心原則
一分鐘掌握七大護心原則一分鐘掌握七大護心原則
一分鐘掌握七大護心原則
 

Ähnlich wie Flash对象在(X)Html中的格式和参数及安全性

FIM Media Player - BoxModel in Flash
FIM Media Player - BoxModel in FlashFIM Media Player - BoxModel in Flash
FIM Media Player - BoxModel in Flash
qizhi20
 
HTML5概览
HTML5概览HTML5概览
HTML5概览
Adam Lu
 
第三方内容开发最佳实践
第三方内容开发最佳实践第三方内容开发最佳实践
第三方内容开发最佳实践
taobao.com
 
Javascript autoload
Javascript autoloadJavascript autoload
Javascript autoload
jay li
 
Javascript 性能优化总结.docx
Javascript 性能优化总结.docxJavascript 性能优化总结.docx
Javascript 性能优化总结.docx
baixingfa
 

Ähnlich wie Flash对象在(X)Html中的格式和参数及安全性 (20)

TBAD F2E 2010 review
TBAD F2E 2010 reviewTBAD F2E 2010 review
TBAD F2E 2010 review
 
Html5移动web应用开发(PhoneGap)
Html5移动web应用开发(PhoneGap)Html5移动web应用开发(PhoneGap)
Html5移动web应用开发(PhoneGap)
 
Html5移动web应用开发(PhoneGap)
Html5移动web应用开发(PhoneGap)Html5移动web应用开发(PhoneGap)
Html5移动web应用开发(PhoneGap)
 
HTML5移动WEB应用程序开发(PhoneGap)
HTML5移动WEB应用程序开发(PhoneGap)HTML5移动WEB应用程序开发(PhoneGap)
HTML5移动WEB应用程序开发(PhoneGap)
 
HTML5移动应用开发分享会(PhoneGap)
HTML5移动应用开发分享会(PhoneGap)HTML5移动应用开发分享会(PhoneGap)
HTML5移动应用开发分享会(PhoneGap)
 
FIM Media Player - BoxModel in Flash
FIM Media Player - BoxModel in FlashFIM Media Player - BoxModel in Flash
FIM Media Player - BoxModel in Flash
 
Flash RIA Usability
Flash RIA UsabilityFlash RIA Usability
Flash RIA Usability
 
Flash ria usability 刘轩飞
Flash ria usability 刘轩飞Flash ria usability 刘轩飞
Flash ria usability 刘轩飞
 
YUI ─ 阿大
YUI ─ 阿大YUI ─ 阿大
YUI ─ 阿大
 
张所勇:前端开发工具推荐
张所勇:前端开发工具推荐张所勇:前端开发工具推荐
张所勇:前端开发工具推荐
 
HTML5概览
HTML5概览HTML5概览
HTML5概览
 
第三方内容开发最佳实践
第三方内容开发最佳实践第三方内容开发最佳实践
第三方内容开发最佳实践
 
Web base 吴志华
Web base 吴志华Web base 吴志华
Web base 吴志华
 
Berserk js
Berserk jsBerserk js
Berserk js
 
m.taobao.com for iPhone&Android Optimization
m.taobao.com for iPhone&Android Optimizationm.taobao.com for iPhone&Android Optimization
m.taobao.com for iPhone&Android Optimization
 
Yid chart
Yid chartYid chart
Yid chart
 
jQuery介绍@disandu.com
jQuery介绍@disandu.comjQuery介绍@disandu.com
jQuery介绍@disandu.com
 
Javascript autoload
Javascript autoloadJavascript autoload
Javascript autoload
 
javascript的分层概念 --- 阿当
javascript的分层概念 --- 阿当javascript的分层概念 --- 阿当
javascript的分层概念 --- 阿当
 
Javascript 性能优化总结.docx
Javascript 性能优化总结.docxJavascript 性能优化总结.docx
Javascript 性能优化总结.docx
 

Mehr von taobao.com

编辑器设计U editor
编辑器设计U editor编辑器设计U editor
编辑器设计U editor
taobao.com
 
淘宝开放产品前端实践
淘宝开放产品前端实践淘宝开放产品前端实践
淘宝开放产品前端实践
taobao.com
 
广告投放代码和创意代码持续优化
广告投放代码和创意代码持续优化广告投放代码和创意代码持续优化
广告投放代码和创意代码持续优化
taobao.com
 
编辑器设计Kissy editor
编辑器设计Kissy editor编辑器设计Kissy editor
编辑器设计Kissy editor
taobao.com
 
百度前端性能监控与优化实践
百度前端性能监控与优化实践百度前端性能监控与优化实践
百度前端性能监控与优化实践
taobao.com
 
Node.js在淘宝的应用实践
Node.js在淘宝的应用实践Node.js在淘宝的应用实践
Node.js在淘宝的应用实践
taobao.com
 
Kind editor设计思路
Kind editor设计思路Kind editor设计思路
Kind editor设计思路
taobao.com
 
Java script physical engine
Java script physical engineJava script physical engine
Java script physical engine
taobao.com
 
Html5环保小游戏
Html5环保小游戏Html5环保小游戏
Html5环保小游戏
taobao.com
 
阅读类Web应用前端技术探索
阅读类Web应用前端技术探索阅读类Web应用前端技术探索
阅读类Web应用前端技术探索
taobao.com
 
完颜:移动网站的兼容性探索
完颜:移动网站的兼容性探索完颜:移动网站的兼容性探索
完颜:移动网站的兼容性探索
taobao.com
 
张平:JavaScript引擎实现
张平:JavaScript引擎实现张平:JavaScript引擎实现
张平:JavaScript引擎实现
taobao.com
 
高力:19楼现有前端架构
高力:19楼现有前端架构高力:19楼现有前端架构
高力:19楼现有前端架构
taobao.com
 
李成银:前端编译平台
李成银:前端编译平台李成银:前端编译平台
李成银:前端编译平台
taobao.com
 
钱宝坤:多浏览器集成的JavaScript单元测试工具
钱宝坤:多浏览器集成的JavaScript单元测试工具钱宝坤:多浏览器集成的JavaScript单元测试工具
钱宝坤:多浏览器集成的JavaScript单元测试工具
taobao.com
 
张克军:前端基础架构的实践和思考
张克军:前端基础架构的实践和思考张克军:前端基础架构的实践和思考
张克军:前端基础架构的实践和思考
taobao.com
 
刘平川:【用户行为分析】Marmot实践
刘平川:【用户行为分析】Marmot实践刘平川:【用户行为分析】Marmot实践
刘平川:【用户行为分析】Marmot实践
taobao.com
 
吴英杰:【用户行为分析】淘宝页面显微镜系统原理及实践
吴英杰:【用户行为分析】淘宝页面显微镜系统原理及实践吴英杰:【用户行为分析】淘宝页面显微镜系统原理及实践
吴英杰:【用户行为分析】淘宝页面显微镜系统原理及实践
taobao.com
 
前端Mvc探讨及实践
前端Mvc探讨及实践前端Mvc探讨及实践
前端Mvc探讨及实践
taobao.com
 
黄希彤:【无障碍访问】Margin
黄希彤:【无障碍访问】Margin黄希彤:【无障碍访问】Margin
黄希彤:【无障碍访问】Margin
taobao.com
 

Mehr von taobao.com (20)

编辑器设计U editor
编辑器设计U editor编辑器设计U editor
编辑器设计U editor
 
淘宝开放产品前端实践
淘宝开放产品前端实践淘宝开放产品前端实践
淘宝开放产品前端实践
 
广告投放代码和创意代码持续优化
广告投放代码和创意代码持续优化广告投放代码和创意代码持续优化
广告投放代码和创意代码持续优化
 
编辑器设计Kissy editor
编辑器设计Kissy editor编辑器设计Kissy editor
编辑器设计Kissy editor
 
百度前端性能监控与优化实践
百度前端性能监控与优化实践百度前端性能监控与优化实践
百度前端性能监控与优化实践
 
Node.js在淘宝的应用实践
Node.js在淘宝的应用实践Node.js在淘宝的应用实践
Node.js在淘宝的应用实践
 
Kind editor设计思路
Kind editor设计思路Kind editor设计思路
Kind editor设计思路
 
Java script physical engine
Java script physical engineJava script physical engine
Java script physical engine
 
Html5环保小游戏
Html5环保小游戏Html5环保小游戏
Html5环保小游戏
 
阅读类Web应用前端技术探索
阅读类Web应用前端技术探索阅读类Web应用前端技术探索
阅读类Web应用前端技术探索
 
完颜:移动网站的兼容性探索
完颜:移动网站的兼容性探索完颜:移动网站的兼容性探索
完颜:移动网站的兼容性探索
 
张平:JavaScript引擎实现
张平:JavaScript引擎实现张平:JavaScript引擎实现
张平:JavaScript引擎实现
 
高力:19楼现有前端架构
高力:19楼现有前端架构高力:19楼现有前端架构
高力:19楼现有前端架构
 
李成银:前端编译平台
李成银:前端编译平台李成银:前端编译平台
李成银:前端编译平台
 
钱宝坤:多浏览器集成的JavaScript单元测试工具
钱宝坤:多浏览器集成的JavaScript单元测试工具钱宝坤:多浏览器集成的JavaScript单元测试工具
钱宝坤:多浏览器集成的JavaScript单元测试工具
 
张克军:前端基础架构的实践和思考
张克军:前端基础架构的实践和思考张克军:前端基础架构的实践和思考
张克军:前端基础架构的实践和思考
 
刘平川:【用户行为分析】Marmot实践
刘平川:【用户行为分析】Marmot实践刘平川:【用户行为分析】Marmot实践
刘平川:【用户行为分析】Marmot实践
 
吴英杰:【用户行为分析】淘宝页面显微镜系统原理及实践
吴英杰:【用户行为分析】淘宝页面显微镜系统原理及实践吴英杰:【用户行为分析】淘宝页面显微镜系统原理及实践
吴英杰:【用户行为分析】淘宝页面显微镜系统原理及实践
 
前端Mvc探讨及实践
前端Mvc探讨及实践前端Mvc探讨及实践
前端Mvc探讨及实践
 
黄希彤:【无障碍访问】Margin
黄希彤:【无障碍访问】Margin黄希彤:【无障碍访问】Margin
黄希彤:【无障碍访问】Margin
 

Flash对象在(X)Html中的格式和参数及安全性

  • 1. <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="400" height="300" id="movie" > <param name="movie" value="movie.swf"/> <embed src="movie.swf" quality="high" width="400" height="300" name="movie" type="application/x-shockwave-flash" plug inspage="http://www.macromedia.com/go/getflashplayer"/> </object> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="800" height="600" id="myFlashContent"> <param name="movie" value="untitled.swf" /> <!--[if !IE]>--> <object type="application/x-shockwave-flash" data="untitled.swf" width="800" height="600"> <!--<![endif]--> <a href="http://www.adobe.com/go/getflashplayer"> <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /> </a> <!--[if !IE]>--> </object> <!--<![endif]--> </object> Flash对象在(x)HTML中的格式和参数及安全性 龙藏 || KingFo 2010-03-11 内网: longzang@taobao.com 外网:oicuicu@gmail.com
  • 2. 1. 约定 !HTML5 表示非HTML5规范。 !IE表示非微软IE浏览器。 IE 表示仅微软IE浏览器 属性、标签和参数都基本采用小写,以符合XHTML规范。 承载页:即Flash对象承载的 HTML页面及其运行环境。 适用主流浏览器: 图片来源:http://microidc.com/tb/share/index.html
  • 3. 2. 经常使用的标签 <obejct> <embed>(不推荐) 不是标准属性(HTML5 中才是) 不方便Flash对象JS代码自动化管理。 不方便偷懒  当然随着HTML5的普及以及手机浏览器的支持,<embed>标签还会再回来的
  • 4. 3. <obejct> 重温定义 用于包含诸如图片(不推荐,请使用<img>)、音频、视频、Java applets、ActiveX、PDF、Flash等
  • 5. 3.1 <obejct>标签属性(Attributes) id name class classid Windows 注册表值 ||URL!HTML5 type MIME 类型 data Object数据位置 MIME :Multipurpose Internet Mail Extensions 多功能Internet 邮件扩充服务 固定的classid : clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 其他参考:http://www.w3schools.com/tags/tag_object.asp
  • 7. 3.3 <param>定义和使用 是<obejct>的运行时(run-time)配置 因此在使用类似Firebug HTML 修改HTML此节点属性是无效的。 传入的是变量(variables)或参数(parameters)
  • 8. 3.4 <param>标签属性(Attributes) name 唯一标识符 value 规定参数的值 其他参考: http://www.w3school.com.cn/html5/html5_param.asp
  • 9.
  • 14. base
  • 16.
  • 17. 4.1.1 movie 必选 IE Flash对象存放路径 <param  name="movie"  value=“path2swf.swf"> 
  • 18. 4.1.2 wmode 可选 window “最顶端” “独立窗口” opaque “带背景色” “嵌入” transparent “透明背景” “嵌入”可能降低动画性能 默认 window 解决HTML层次问题请使用”嵌入” 的属性。 <param  name=“ wmode ”  value=“opaque ”>  <!-- 页面背景没有要求用 --> <param  name=“ wmode ”  value=“transparent ”>  <!-- 页面背景有要求用 -->
  • 19. 4.1.3 flashvars 可选 发送根级变量(root level variables)给Flash对象 最大64KB字符串容量 &分隔开的name=variable的组合 特殊或/和不可打印字符需要转换。 variable 的值可能 需要 encodeURIComponent 单一一个空格可以用 +表示 类同 movie.swf ? a=1&b=2 <param name="flashvars" value="a=1&b=2" /> <param name="flashvars" value="a=1&amp;b=2" /> <param name=“flashvars” value=“jsonData={‘a’:1,’b’:2}" />
  • 20. 4.1.3.1 flashvars 规范 JSON数据需要将” 改为’ 。因此需要在 Flash对象内进行还原。 JSON数据的value,XML字符串、以及普通的variable建议进行encodeURIComponent以免发生意外。 若需要纯静态输入参数则请避免flash对象区分参数或变量的&符号。 关于json数据value:即当若json 为{ “data”:” value”} 或 [“value”]中的value部分。请进行对其中的value处理。
  • 21. 4.1.4 allowscriptaccess 可选 always 来自任何域都可和当前承载页js通讯。 sameDomain 只有和Flash对象来源域相同的页面允许js通讯。 never 关闭承载页和Flash对象通讯。 默认sameDomain(Flashplayer9.0.115.0+ )
  • 22. 4.1.4.1 受影响AS3API flash.system.fscommand() 老式的调用外部命令或JS方法。 ExternalInterface.call() 新式的调用外部JS方法。 flash.net.navigateToURL() 跳转页面,类似 <a>, 可以指定herf 和 target
  • 23. 4.1.5 allownetworking 可选 all SWF 文件中允许使用所有网络 API internal SWF 文件可能不调用浏览器导航或浏览器交互 API 。JS自然在其中。 none 关闭所有网络 API 默认值 all
  • 24.
  • 32.
  • 33.
  • 34.
  • 35. 4.2.2 loop 可选 true false 默认false 播放到最后一帧时是否重新开始播放。
  • 36. 4.2.3 menu 可选 true 显示完整的菜单 false 仅仅显示设置选项和about选项 默认true 右键点击Flash对象时的右键菜单
  • 37. 4.2.3.1 menu示例 未设置 或true false Debug 版本 一般用户版本
  • 38. 4.2.4 quality 可选 best high autohigh medium autolow low 默认 high 回放期间使用的消除锯齿级别 类似menu为true时“品质”调节 提供最佳的显示品质,而不考虑回放速度。 使外观优先于回放速度,它始终应用消除锯齿功能。 在开始时是回放速度和外观两者并重,但在必要时会牺牲外观来保证回放速度。 会应用一些消除锯齿功能,但并不会平滑位图。 优先考虑速度,但是也会尽可能改善外观。 使回放速度优先于外观,而且从不使用消除锯齿功能
  • 40. 4.2.6 scale 可选 showall 显示全部保持原始宽高比 noborder 无边界保持原始宽高比 exactfit 适应性填充不保持原始宽高比 noscale 不缩放原始高宽 默认showall 可视区域的缩放模式。 如果AS3中有设定了scaleMode为noScale则此属性失效。
  • 41. 4.2.6.1 scale示例 noborder showall exactfit
  • 42. 4.2.7 salign 可选 l 按左边对齐 t 按上边对齐 r 按右边对齐 b 按下边对齐 tl 按左上边对齐 tr 按右上边对齐 bl 按左下边对齐 br 按右下边对齐 缩放对齐方式。 缩放时,按照此规则进行贴边对齐,如果有需要则剪掉其他边。
  • 43. 4.2.7.1 salign示例 l b r t tl tr bl l
  • 44. 4.2.5 bgcolor 可选 #RRGGBB (十六进制 RGB 值) Flash 对象背景色 当wmode为非 transparent时有效。
  • 46. 4.2.6 devicefont 可选 true false 默认false 对于未选定“设备字体”选项的静态文本对象是否仍使用设备字体进行绘制。 Flash包含了3种设备字体 _sans (类似 Helvetica 或 Arial) _serif (类似 Times Roman) _typewriter(类似 Courier)
  • 47. 4.3Flash 对象的其他参数 base swliveconnect seamlesstabbing
  • 48. 4.3.1 base 可选 相对路径的基址 默认为空 如果设定Flash对象中的相对路径将通过此处定义的目录查找。 这在诸如Flash对象被iframe嵌套时比较有用。
  • 49. 4.3.2 swliveconnect 可选 true false 默认false 选择启动Flash时是否先启动JAVA。 启动 Java 会显着增加 SWF 文件的启动时间;因此,只有在必要时才应将此标签设置为 true。 仅适用于 embed 标签。 使用 fscommand() 动作可从独立的放映文件中启动 Java。 KingFo建议忽略该标签。
  • 50. 4.3.3 seamlesstabbing 可选 true 可以移出焦点到下个页面结构。 false 仅在table中。 默认true 是否启动无缝Table选择 在使用Table键时,焦点是否可以移出Flash对象。
  • 51. 4.4 关于fallback Some embedded content elements can have fallback content: content that is to be used when the external resource cannot be used (e.g. because it is of an unsupported format). The element definitions state what the fallback is, if any. ------HTML5 Spec
  • 52. 4.4 .1 我们的fallback 我们的fallback是什么? 别急,可以偷看下4.5.1 或4.5.2 粉色部分。 如何被启用? 当客户端未安装FlashPlayer 当Flash 对象(SWF)请求为404时是否被启用? 很遗憾,不会。 另据陈成反应fallback在非IE下内容都会被请求,如图片。见http://www.chencheng.org/blog/2010/02/04/flash-fallback-content/
  • 54. 4.5.1 SWFObejcet 静态官方式 <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="950" height="203" id="myFlashContent"> <param name="movie" value="http://img01.taobaocdn.com/tps/i1/T1S1tkXgliy0NtxVjX.swf" /> <param name="allowfullscreen" value="true" /> <param name="allowscriptaccess" value="always" /> <param name="allownetworking" value="all" /> <param name="flashvars" value="jdata=[{'href':'http://bbs.taobao.com/catalog/thread/154505-5469566.htm','img':'http://img01.taobaocdn.com/tps/i1/T1QmpuXnNjXXXXXXXX-160-170.jpg','text':'淘宝美容馆达人召集令'},{'href':'http://bbs.taobao.com/catalog/thread/154506-5112835.htm','img':'http://img08.taobaocdn.com/tps/i8/T1WvFuXd4dXXXXXXXX-160-170.jpg','text':'我是什么控开招晒客'},{'href':'http://bangpai.taobao.com/group/thread/40046-5062800.htm','img':'http://img07.taobaocdn.com/tps/i7/T1ilFuXb4uXXXXXXXX-160-170.jpg','text':'古典性感清纯?'},{'href':'http://bangpai.taobao.com/group/thread/40046-5543420.htm','img':'http://img08.taobaocdn.com/tps/i8/T1c8FuXeXuXXXXXXXX-160-170.jpg','text':'麻辣老妈S身材'}]" /> <param name="wmode" value="transparent" /> <!--[if !IE]>--> <object type="application/x-shockwave-flash" data="http://img01.taobaocdn.com/tps/i1/T1S1tkXgliy0NtxVjX.swf" width="950" height="203"> <param name="allowfullscreen" value="true" /> <param name="allowscriptaccess" value="always" /> <param name="allownetworking" value="all" /> <param name="scale" value="exactfit" /> <param name="flashvars" value="jdata=[{'href':'http://bbs.taobao.com/catalog/thread/154505-5469566.htm','img':'http://img01.taobaocdn.com/tps/i1/T1QmpuXnNjXXXXXXXX-160-170.jpg','text':'淘宝美容馆达人召集令'},{'href':'http://bbs.taobao.com/catalog/thread/154506-5112835.htm','img':'http://img08.taobaocdn.com/tps/i8/T1WvFuXd4dXXXXXXXX-160-170.jpg','text':'我是什么控开招晒客'},{'href':'http://bangpai.taobao.com/group/thread/40046-5062800.htm','img':'http://img07.taobaocdn.com/tps/i7/T1ilFuXb4uXXXXXXXX-160-170.jpg','text':'古典性感清纯?'},{'href':'http://bangpai.taobao.com/group/thread/40046-5543420.htm','img':'http://img08.taobaocdn.com/tps/i8/T1c8FuXeXuXXXXXXXX-160-170.jpg','text':'麻辣老妈S身材'}]" /> <param name="wmode" value="transparent" /> <![endif]--> <a href="http://www.adobe.com/go/getflashplayer"> <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /> </a> <!--[if !IE]></object> <!--<![endif]--> </object> 生产此式可以用这款工具生成: http://code.google.com/p/swfobject/wiki/generator
  • 55. 4.5.2 神奇的偷懒写法 <object type="application/x-shockwave-flash" data="http://img01.taobaocdn.com/tps/i1/T1S1tkXgliy0NtxVjX.swf" width="950" height="203" id="myFlashContent"> <param name="movie" value="http://img01.taobaocdn.com/tps/i1/T1S1tkXgliy0NtxVjX.swf" /> <param name="allowfullscreen" value="true" /> <param name="allowscriptaccess" value="always" /> <param name="allownetworking" value="all" /> <param name="flashvars" value="jdata=[{'href':'http://bbs.taobao.com/catalog/thread/154505-5469566.htm','img':'http://img01.taobaocdn.com/tps/i1/T1QmpuXnNjXXXXXXXX-160-170.jpg','text':'淘宝美容馆达人召集令'},{'href':'http://bbs.taobao.com/catalog/thread/154506-5112835.htm','img':'http://img08.taobaocdn.com/tps/i8/T1WvFuXd4dXXXXXXXX-160-170.jpg','text':'我是什么控开招晒客'},{'href':'http://bangpai.taobao.com/group/thread/40046-5062800.htm','img':'http://img07.taobaocdn.com/tps/i7/T1ilFuXb4uXXXXXXXX-160-170.jpg','text':'古典性感清纯?'},{'href':'http://bangpai.taobao.com/group/thread/40046-5543420.htm','img':'http://img08.taobaocdn.com/tps/i8/T1c8FuXeXuXXXXXXXX-160-170.jpg','text':'麻辣老妈S身材'}]" /> <param name="wmode" value="transparent" /> <a href="http://www.adobe.com/go/getflashplayer"> <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /> </a> </object>
  • 56. 4.5.2.1 静态官方式数据 IE FireFox fallback 请忽略此处 23requests
  • 57. 4.5.2.2 懒后的数据 IE 请忽略此处 FireFox fallback 23 requests
  • 58. 4.5.2.2 偷懒后的纠结 有个小遗憾:由于data和movie ,IE会加载两次: 第一次来自浏览器的 data解析。 第二次来自ActiveX 的movie的获取。 虽然第二次将从缓存区(cache)取。因此会浪费一个 请求数。 在Firefox下无论官方标准式还是偷懒方式 都会加载2次。见数据 标记处
  • 59. 4.5.2.3 关于手机一些疑惑。。 由于手机<!--[if !IE]>--> 这类HACK标签支持情况比较 难堪。。。 因此偷懒写法虽然避免了,但未知是否微软的移动设备上使用了ActiveX。了解的同学可以告诉我。 因此总结和展望的HTML5,<embed>标签依然会东山再起,用于“合法”的 区分IE和非IE的世界(ActiveX或NPRuntime)
  • 60. 4.5.3 懒式写法注意事项 确保<object> 中设置了 type属性为application/x-shockwave-flash 。 确保<object> 中设置了data属性为Flash对象存放路径。 确保<object> 中设置了name属性为movie的子节点<param>,并将value属性设置为Flash对象存放路径。 确保高宽属性符合设计。 基本式如下: <object type="application/x-shockwave-flash" data=“PATH2SWF.swf" width=“800" height=“600”> <param name="movie" value="PATH2SWF.swf" /> </object>
  • 61. 4.5.3.1 如何扩展基本式 <object type="application/x-shockwave-flash" data=“PATH2SWF.swf" width=“800" height=“600”> <param name="movie" value="PATH2SWF.swf" /> <param name=“…" value=" … " /> <param name=“…" value=" … " /> <param name=“…" value=" … " /> <a href=“go/getflashplayer"> <img src=“get_flash_player.gif" alt="Get Adobe Flash player" /> </a> ….. </object>
  • 62. 4.6 安全性 这里我本人“擅自”分3个等级,并逐级增高。 P2 页面显示安全。指影响了显示层次、定位,给用户带来了显示干扰。 P1 页面交互安全。指具备误解性和诱惑性的显示激发了其他未告知的动作。 P0 恶意代码。指隐藏在Flash对象内地主动或者被动式的一些代码造成恶意性质的内容。 注意,以上三级是并存向上的,即在P0级中很有可能存在P1或P2。 另仅讨论第三方提供的Flash对象。己方提供对象请按需宽松。 在未授权的情况下发生
  • 64. 4.6.1.1 P2级安全---页面定位 页面定位。 对于页面局部的Flash对象,请将其父容器范围限定。 或如设定样式为position : relative,制止第三方掺入绝对定位喧宾夺主。 或如设定其父容器样式设定有效的显示范围。并将超出的部分隐藏。 示例样式: { display:block; overflow:hidden; height:800px; width:600px }
  • 65. 4.6.1.2 P2级安全---页面层级 页面层级。 由于默认wmode是window,因此作为独立的窗口自然会不受页面HTML结构影响而引发遮挡。 一般来说只要按以下规则设置wmode值即可 如果对背景透明无要求,设置为opaque 如果对背景透明有要求,设置为transparent 当然如果在允许的情况下,基于wmode方法后,可以通过绝对定位position:absolute进行层次z-index的细致调整。 其他诸如Iframe方式和HACK式的方法就不做介绍了,有兴趣的同学可以自己玩。
  • 66. 4.6.2 P1级安全 这在fullscreen方式为true下发生全屏事件。 默认情况下请保持false。除非被授权。 当你的版本较低,意外的触发了更改粘贴板内容。如你粘贴某内容时,鼠标滑过了一个在鼠标滑过时触发更改粘贴板内容。可能还有更恶劣的无限制循环更改粘贴板数据。 方法只有升级你的flash版本至最新版本。 在此如果包含P2级安全大可以想象。
  • 68. 4.6.3.1 P0级安全---相关知识 allowscriptaccess与allownetworking allownetworking > allowscriptaccess管理等级。 即当allownetworking设置值为internal时就已经相当于allowscriptaccess的失效或者说可以看作设置了never. 因此细节控制需要从低等级allowscriptaccess的开始。
  • 71. 4.6.3.3 P0级安全---防范 对于不可预知的第三方视频或其他内容。都将allownetworking设置为internal。 如果第三方可信,则可以不设置allownetworking或者设置allownetworking为all。并将allowscriptaccess设置为always。 若页面引用位置都可以受到控制,比如合作的2级域名之类的,则可以设置allownetworking为all。不设置allowscriptaccess或者allowscriptaccess设置为sameDomain。
  • 72. 参考文档 Flash OBJECT and EMBED tag attributes http://kb2.adobe.com/cps/127/tn_12701.html Controlling access to scripts in a host web page http://kb2.adobe.com/cps/133/tn_13331.html Detection Kit Express Install: Links from a SWF file in playerProductInstall.html page no longer function (Flash Player) http://kb2.adobe.com/cps/402/kb402975.html HTML <object> Tag http://www.w3school.com.cn/html5/html5_object.asp HTML <param> Tag http://www.w3schools.com/tags/tag_param.asp 精简的Flash插入方式 http://www.xintend.com/Article/EssuefNieCFMDbENScai.aspx ExternalInterface.objectID 浏览器兼容问题 http://www.xintend.com/Article/PyoUWaKXwqmPuUKpZyzq.aspx