- 浏览: 288297 次
- 性别:
- 来自: 福建龙岩
文章分类
- 全部博客 (201)
- JavaSE (20)
- Struts1 (7)
- Struts2 (0)
- Hibernate (0)
- Spring (2)
- Flex (0)
- Ajax (1)
- web (20)
- Database (17)
- jsp/servlet (1)
- javascirpt (14)
- freemarker (2)
- jquery (6)
- SEO优化 (26)
- JSP&Servlet (1)
- PHP (32)
- CSS (12)
- Magento (9)
- 网站性能优化 (3)
- Flash (1)
- 生活 (3)
- 网站建设 (15)
- ZenCart (12)
- web自动化 (1)
- 企业应用 (1)
- LINUX (4)
- 字符集 (2)
- Delphi (1)
- C# (4)
- 移动互联网 (1)
- Vim (1)
最新评论
-
谷超:
第一次搞freemarker,test.ftl这个文件应该放在 ...
freemarker入门例子 -
zyhui98:
file_get_contents用不了
通过IP获取地理位置 -
ljx0517:
那ff下无法获取 路径怎么办呢
common-fileupload中FileItemStream的getName()方法 -
kaixuan_166:
多谢,刚好用到
通过Google获取天气预报信息 -
lufengdie:
借用下,嘿嘿··
java查询IP物理地址
SWFObject: 基于Javascript的Flash媒体版本检测与嵌入模块 实现原理 SWFObject的使用是非常简单的,只需要包含 swfobject.js这个js文件,然后在DOM中插入一些简单的JS代码,就能嵌入Flash媒体资源了。 下面是一个最简单的范例: <script type="text/javascript" src="swfobject.js"></script> <div id="flashcontent"> This text is replaced by the Flash movie. </div> <script type="text/javascript"> var so = new SWFObject("movie.swf", "mymovie", "200", "100", "7", "#336699"); so.write("flashcontent"); </script> 让我们看看这些代码是如何工作的 <div id="flashcontent">[...]</div> 首先,我们要为SWF资源预留一个HTML结点。这个HTML结点内的所有内容都会在客户端被Flash资源替换,当客户端没有安装Flash播放器的时候,这些内容会显示出来。这一特色在SEO以及对用户体验方面非常有必要。 var so = new SWFObject(swf, id, width, height, version, background-color [, quality, xiRedirectUrl, redirectUrl, detectKey]); 创建一个新的SWFObject实例,并且传入一下参数: swf - SWF文件路径 id - 您为这个SWF文件分配的id值,它将用于给embed与object标签设定name属性,以便于可以支持swliveconnect的功能,如动态传入变量 width - 宽度 height - 高度 version - FlashPlayer需要的版本号,它可以详细到 '主版本号.小版本号.细节',例如:"6.0.65"。一般地,我们只需传入主版本即可,例如:"6"。 background-color - Flash资源的背景色,16进制格式 此外,还有如下可选参数: quality - 画面质量,默认为"high"。 xiRedirectUrl - 详见ExpressInstall相关 redirectUrl - 没有安装相应版本的播放器后自动跳转的目标地址 detectKey - 这是当忽略检测时,SWFObject将去url地址中查找的变量,默认值为“detectflash”,后续有详细介绍 so.write("flashcontent"); 将Flash资源应用到DOM里,在浏览器显示出来。 细节 SWFObject 的灵活性非常好。您完全可以事先写好HTML的其他部分,最后再回过头来添加Flash内容。这样可以确保在客户端没有Flash的情况下,用户不会一无所获;也可以确保针对搜索引擎,做了什么样的关键词优化。您完全不用像以前那样担心客户端的各种状况 SWFObject兼容当前各种主流浏览器,如:PC上的IE5/5.5/6, Netscape 7/8,Firefox, Mozilla, and Opera。Mac上的IE5.2, Safari, Firefox, Netscape 6/7, Mozilla, and Opera 7.5+,各种浏览器的后续版本也会继续支持 SWFObject检测Flash播放器版本从3开始到最新的版本号,而且也消灭了IE中“激活”的麻烦。这里有相关背景。 SWFObject可以方便地检查版本细节,例如我们需要v.6.0 r65 (or 6,0,65,0) 来处理SWF资源,就可以添加如下代码: var so = new SWFObject("movie.swf", "mymovie", "200", "100", "6.0.65", "#336699"); SWFObject的版本检测可以人工忽略。如果在特定环境下您不希望SWFObject检测版本号,那么只需要传递一个参数在HTML页面中,就可以了。SWFObject可以捕获这个参数并且跳过检测,直接写入Flash嵌入代码到DOM中。用于忽略版本检测的变量名是“detectflash”,以下是一个例子: <a href="mypage.html?detectflash=false">Bypass link</a> SWFObject 范例 以上我们接触到的范例都最基础的,接下来我们列举一些其他功能,尤其是传入参数、变量这些使用频率较高的行为。 传入Flash内联参数的简单范例 <script type="text/javascript"> var so = new SWFObject("movie.swf", "mymovie", "200", "100%", "7", "#336699"); so.addParam("quality", "low"); so.addParam("wmode", "transparent"); so.addParam("salign", "t"); so.write("flashcontent"); </script> 这里可以看到Flash支持的内联参数列表:full list of the current parameters and their possible values(adobe.com官方资源) 采用"Flashvars"参数传入变量 用Flashvars是在预加载Flash时传入数据的最佳做法,语法格式与GET变量串非常类似,如:variable1=value1&variable2=value2&variable3=value3SWFObject帮助您将这项工作变得更加明确化 <script type="text/javascript"> var so = new SWFObject("movie.swf", "mymovie", "200", "100", "7", "#336699"); so.addVariable("variable1", "value1"); so.addVariable("variable2", "value2"); so.addVariable("variable3", "value3"); so.write("flashcontent"); </script> 这些变量将会保存在_root这个MovieClip对象里。 SWFObject还可以方便地直接从URL中接受参数传入Flash中,例如你有这样一个URL:http://www.example.com/page.html?variable1=value1&variable2=value2。采用getQueryParamValue()方法你就可以轻松获取这些参数,并将它们传入Flash,例如: <script type="text/javascript"> var so = new SWFObject("movie.swf", "mymovie", "200", "100", "7", "#336699"); so.addVariable("variable1", getQueryParamValue("variable1")); so.addVariable("variable2", getQueryParamValue("variable2")); so.write("flashcontent"); </script> getQueryParamValue()方法同样可以获取JavaScript的Location对象的hash值“location.hash”来与swf内部进行通信。这里是一个采用SWFObject的应用程序,其中用到了location.hash对象:链接地址 在SWFObject中应用Express Install(利用官方自动升级接口) SWFObject全面支持AdobeFlash播放器的自动升级功能(从6.0.65起的FlashPlayer支持在swf内部自动升级!),这样用户完全不用离开您的网页就能完成播放器的升级了。 首先,上传官方的expressinstall.swf到您的服务器上,然后使用useExpressInstall方法指定这个swf文件的地址就可以了,例如: <script type="text/javascript"> var so = new SWFObject("movie.swf", "mymovie", "200", "100", "8", "#336699"); so.useExpressInstall('expressinstall.swf'); so.write("flashcontent"); </script> 您可以安装一个低版本的Flash播放器然后访问这个页面看到效果 在SWFObject原文件压缩包中您可以找到具体的使用细节,您可以自己定制ExpressInstall的流程。 如果您的Flash影片在弹出窗口中,或者您希望用户在完成了ExpressInstall后重定向到其他地址,你可以采用xiRedirectUrl属性,来自动完成这一步骤。例如: <script type="text/javascript"> var so = new SWFObject("movie.swf", "mymovie", "200", "100", "8", "#336699"); so.useExpressInstall('expressinstall.swf'); so.setAttribute('xiRedirectUrl', 'http://www.example.com/upgradefinished.html'); // must be the absolute URL to your site so.write("flashcontent"); </script> 下载 SWFObject基于MIT License,您可以免费任意使用。 下载 SWFObject 1.5 - Zip 文件, 包含 swfobject.js 和其他范例。 更多链接: 标准Flash嵌入 - 符合XHTML 1.0 Strict.* 全屏Flash嵌入 - 符合XHTML 1.0 Strict.* 含Express Install的标准Flash嵌入 - 从6.0.65起的FlashPlayer才支持此功能 * 页面全部是 text/html格式,不是 application/xhtml+xml. 更多问题可以访问我们的论坛:SWFObject论坛! 独特优势 多年以来,各种各样的Flash播放器版本检测代码层出不穷,包括嵌入脚本也有许多。我们在这一部分针对流行的几种方法进行一个比较。 1) Adobe官方做法 这就是经典的Object标签和Embed标签配合做法,也是目前最常用的做法: <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="550" height="400" id="Untitled-1" align="middle"> <param name="allowScriptAccess" value="sameDomain" /> <param name="movie" value="mymovie.swf" /> <param name="quality" value="high" /> <param name="bgcolor" value="#ffffff" /> <embed src="mymovie.swf" quality="high" bgcolor="#ffffff" width="550" height="400" name="mymovie" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" /> </object> 虽然是目前最常用的方法,但仍然有一些问题。 缺乏播放器版本检测 没有播放器插件版本检测,用户会获得非常糟糕的体验,他们会在不知情的情况下看到ActiveX插件安装入口,这样会导致大部分用户离开。而且,用低版本播放器播放高版本的swf文件,会导致更多潜在问题,而用户会将一切问题归咎于您的产品 Eolas专利纠纷导致IE的近期发行版中需要进行一次“激活”点击才可以完成和Flash内容的交互。详细内容 不符合XHTML规范 - 在HTML和XHTML中都没有embed标签HTML or XHTML。因为object标签在不同浏览器中的诡异表现,我们不得不用embed标签来完善最终效果。 2) 仅采用Object标签 / Flash satay 这种方法在2002年的A List Apart article出现之后开始大面积流行,这里有两个例子: '仅含Object标签' <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="300" height="120"> <param name="movie" value="http://www.macromedia.com/shockwave/download/triggerpages_mmcom/flash.swf"> <param name="quality" value="high"> <param name="bgcolor" value="#FFFFFF"> <!--[if !IE]> <--> <object data="http://www.macromedia.com/shockwave/download/triggerpages_mmcom/flash.swf" width="300" height="120" type="application/x-shockwave-flash"> <param name="quality" value="high"> <param name="bgcolor" value="#FFFFFF"> <param name="pluginurl" value="http://www.adobe.com/go/getflashplayer"> FAIL (the browser should render some flash content, not this). </object> <!--> <![endif]--> </object> Flash satay <object type="application/x-shockwave-flash data="c.swf?path=movie.swf" width="400" height="300"> <param name="movie" value="c.swf?path=movie.swf" /> <img src="noflash.gif" width="200" height="100" alt="" /> </object> 可用性问题 - 采用 Flash Satay 的话, 一些屏幕阅读器会忽略swf内容. Eolas专利纠纷导致IE的近期发行版中需要进行一次“激活”点击才可以完成和Flash内容的交互。详细内容 缺乏播放器版本检测 没有播放器插件版本检测,用户会获得非常糟糕的体验,他们会在不知情的情况下看到ActiveX插件安装入口,这样会导致大部分用户离开。而且,用低版本播放器播放高版本的swf文件,会导致更多潜在问题,而用户会将一切问题归咎于您的产品 早期的的Safari会忽略param标签 - 在这些版本:2.0 (Tiger) 或者 1.3 (Panther) 或者可能 1.2.8 (前Panther) 之前,Safari 完全忽略param 标签。这将会让你的Flashvars等参数无法传入。 3) 'small flash movie on the index page' 检测方法 这个方法会通过在首页放一个swf文件去访问$version 变量来返回版本信息。 问题在于: 内页无检测 - 内页如果不放着这个swf就无法检测 “激活”问题 不符合HTML或者XHTML规范 影响搜索引擎索引排名 4) Adobe官方 Flash Player Detection 模块 Adobe官方这个模块非常不错,然而仍然有一些不足,它采用两种方法来检测 Flash自身检测,如上面提到的"small Flash movie on the index page" - 缺点已经提过了 Javascript - 混乱的代码让你的HTML变得非常难以维护 深入讨论在这里。 5) 用纯粹的JS来检测、嵌入 这种方法看起来不错,但是仍然缺乏规范,而且消耗开发成本 检测不够完善 - 通常只能检测到当前的Flash播放器发行版,而且升级也需要手工参与 增加了 更多 代码 - 难以维护的DOM结构 解决方案太笨重 - SWFObject进行了多次优化,非常轻量
- swfobject.rar (3 KB)
- 下载次数: 3
发表评论
-
三种获取ajax加载的动态内容的方法
2015-06-14 02:04 2504有些网站的比较重要的内容可能会采用javascript动态加 ... -
Jquery 仿新浪首页信息滚动效果1
2012-12-14 11:36 892<!DOCTYPE html PUBLIC &q ... -
eval(function(p,a,c,k,e,d)系列解密javascript程序
2011-01-10 14:50 1560<script> a=62; functi ... -
(转)JavaScript正则表达式收集
2010-11-19 14:33 755匹配中文字符的正则表达式: [u4e00-u9fa5] 评注 ... -
Javascript关于top、clientTop、scrollTop、offsetTop
2010-09-17 10:15 1859网页可见区域宽: document.body.cli ... -
Javascript&CSS实现的下拉框
2010-08-12 18:15 587一款非常好看的下拉框 -
JavaScript函数式编程
2010-07-06 18:27 915函数式编程概念 在那些通过描述 “如何做” 指定解决问 ... -
两种方法调用JavaScript函数
2010-07-06 17:41 944在JavaScript中,有两种调用函数的方式。一般的方式是把 ... -
Javascript的陷阱
2010-07-06 16:33 881条件语句(3个陷阱) ... -
javascript的event.srcElement与event.target
2010-06-23 16:25 1517Javascript event.srcElement可以捕捉 ... -
firefox下如何获取event
2010-06-23 16:08 1416在IE中可以直接使用的event在Firefox下却不能使用, ... -
JS屏蔽flash右键信息
2010-06-18 18:17 915<!DOCTYPE html PUBLIC &quo ... -
可移动div弹出层
2010-05-25 09:59 1322function showTitle(event, ob ...
相关推荐
SWFObject: 基于Javascript的Flash媒体版本检测与嵌入模块 SWFObject: 基于Javascript的Flash媒体版本检测与嵌入模块 SWFObject: 基于Javascript的Flash媒体版本检测与嵌入模块
SWFObject是一个基于Javascript的Flash媒体版本检测与嵌入模块,其主要使用目的是让我们将FLASH嵌入网页中的操作更简单,加入了版本检测功能,符合XHTML的标准验证的插入,并解除了IE对FLASH点击激活的限制,对主流...
媒体查询 CSS媒体查询允许开发者基于浏览网站的设备的特性来应用不同的样式申明,最常用的特性是视口宽度。 GCF 谷歌内嵌浏览器框架, 使用此插件,用户可以通过Internet Explorer的用户界面,以Chrome内核的渲染方式...
appemit 支持chrome firefox edge IE等浏览器最新版本开发、调用dll,ocx, flash appemit.com 最新版本 AppEmit是应用程序(尤其是浏览器)与本地程序间互相通信的易扩展的轻量级中间件。 AppEmit is an extensible ...
2分法-通用存储过程分页(top max模式)版本(性能相对之前的not in版本极大提高) 分页存储过程:排序反转分页法 优化后的通用分页存储过程 sql语句 一些Select检索高级用法 SQL server 2005中新增的排序函数及应用 ...
- 可自定义的设计,无OS 模块 - 控制:url、退后、重新加载、重缩放大小等等。 - Mipmap 模拟着色器:更快的纹理更新且无火花 - 拦截新窗口并为其创建场景内对象 - 极简 JSON 库 - 提供 Chromium 的公开编码支持(非...
- 可自定义的设计,无OS 模块 - 控制:url、退后、重新加载、重缩放大小等等。 - Mipmap 模拟着色器:更快的纹理更新且无火花 - 拦截新窗口并为其创建场景内对象 - 极简 JSON 库 - 提供 Chromium 的公开编码支持(非...
26.1.2ActionScript与JavaScript交互 566 26.1.3ActionScript与桌面程序交互 567 26.2网页脚本交互示例 568 26.3桌面应用交互示例 571 26.4小结 573 第27章ActionScript打印控制 574 27.1使用打印作业对象 574 ...
因为 aardio奇特的语言特性,aardio的胶水能力极强,在aardio中可以非常方便的调用C语言、C++、C#、Java、Python、Javascript、Node.Js、Flash ActionScript、PHP、VBScript、NewLISP、Delphi、Go语言 .........
因为 aardio奇特的语言特性,aardio的胶水能力极强,在aardio中可以非常方便的调用C语言、C++、C#、Java、Python、Javascript、Node.Js、Flash ActionScript、PHP、VBScript、NewLISP、Delphi、Go语言 .........
创建基于ActionScript的模块 22.7节.使用ModuleLoader载入模块 22.8节.使用ModuleManager载入模块 22.9节.载入来自不同服务器的模块 22.10节.与模块通信 22.11节.使用查询字符串传递数据给模块 22.12节.使用连接报告...
如果系统检测到无效或非标准分区表标记,将提示用户是否继续执行该命令。除非您访问驱动器有问题,否则不要继续进行。向系统分区写入新的主引导记录可能破坏分区表并导致分区无法访问。 format 将指定的驱动器...
节点博客和尚,穆特,玉器特点添加帖子,图片上传,添加类别,评论显示首页上的所有帖子没有架构帖子,上载,表格,Flash消息,徽标,导航,ul / a / body的styling 注释帖子收集包内嵌入文档瞬间,笨拙,multer,...
另一点,声明变量时,可以不用声明就直接赋值来决定变量类型的语言如(javascript,flash cs3.0以前,等),这类语言变量的声明通常被称为弱类型,而如(c++等)必须先声明,后使用,而且声明时必须确定变量类型,这种就是严格...
12.1.6 获取文件的版本信息 12.1.7 Path类 12.1.8 文件浏览器 12.2 使用流读写文件 12.2.1 文本文件 12.2.2 二进制文件 12.2.3 上传文件 12.2.4 使文件对多用户安全 12.2.5 压缩 12.3 序列化 ...
12.1.6 获取文件的版本信息 407 12.1.7 Path类 408 12.1.8 文件浏览器 410 12.2 使用流读写文件 414 12.2.1 文本文件 415 12.2.2 二进制文件 416 12.2.3 上传文件 417 12.2.4 使文件对多用户安全 ...
6、无法使用视频签到,看不到图像 : 进入 C:\windows\system32\macromed\flash\mms.cfg 这个进程,不要搜索,要手动,因为C盘把这些设为自动隐藏文件,然后删除mms.cfg,重启。 【第一次登录使用】 全新安装和...