Flash页面如何通过校验

1.embed是非法的


<embed>标签是Netscape的私有标签,虽然<embed>标签应用广泛存在,但是从HTML3.2,HTML4.0到XHTML1.0,W3C都没有收录这个标签。使用<embed>标签的页面将不能通过W3C校验。

2.应该用object

W3C推荐的是<object>标签。甚至在XHTML2中,<img>都要被<object>所取代。用<object>方法插入flash的代码是:

<object type="application/x-shockwave-flash" data="test.swf" width="200" height="100"> <parm name="movie" value="test.swf /> </object>

但是这个方法在IE5-IE6/Win上不能正确显示(不能连续播放,要下载完才能放),在低版本的可以正确显示。后来采用先调一个小flash文件再嵌入大flash文件的方法解决了连续播放的问题,但是在IE5以上版本有时依然出现不能显示flash的情况。

3.目前的临时办法

那么既要符合标准,又想在所有浏览器正确显示flash应该怎么做?macromedia网站是如何通过W3c校验的?

有设计师想到了用JavaScript来隐藏非法的<embed>标签,

<script type="text/javascript "> if (navegiator . mimeTypes && navigator . mimeTypes["application/x-shockwave-flash"] { document . write('<embed src="test . swf" ...

这是目前比较好的解决办法。你一定要插flash,就用js调用。这种方法可以欺骗W3C的校验程序,使页面通过校验。但仅仅是"欺骗",而不是真符合标准。

macromedia是怎么做的呢?看到这句代码:

<!-- $RCSfile: FlashDetection2k.pm,v $ $Revision: 1.68 $ : your browser's accept header indicates you have Flash 6,0,65,0 or better, so you're OK for this Flash 6 movie, here it comes. -->

它采用了一个折中二选一的办法:

  • (1).首先javascript来判断你的浏览器版本和flash player的版本;
  • (2).根据版本的不同在后台动态的生成HTML代码。

简单说就是默认采用<object>方法,如果浏览器不能处理object的MIME类型“ application/x-shockwave-flash”,它就插入子元素<embed>。说穿了,这和用js隐藏<embed>方法类似,也是一种“欺骗”的办法,但这是目前能够做到的最符合标准的,比较完美的做法了。

要想真正抛弃<embed>,只能等IE浏览器对<object>更好的支持才行,也许要等到Longhorn出来了。

(0)

相关推荐

  • Flash页面如何通过校验

    1.embed是非法的 <embed>标签是Netscape的私有标签,虽然<embed>标签应用广泛存在,但是从HTML3.2,HTML4.0到XHTML1.0,W3C都没有收录这个标签.使用<embed>标签的页面将不能通过W3C校验. 2.应该用object W3C推荐的是<object>标签.甚至在XHTML2中,<img>都要被<object>所取代.用<object>方法插入flash的代码是: <obj

  • 用html为flash页面添加音乐

    现在越来越多人用flash建网站了,由于mx2004支持部分html的标签,我们可以用它们来丰富页面,而不仅仅是文字. 详细的html标签可以看这里:http://www.blueidea.com/tech/multimedia/2003/789.asp 这里有一个要注意的:<img> 图像标签说明:这个标签的功能不仅仅是在文本框中插入图片,还可以插入SWF和MovieClip.属性:src: 要加载的JPG或SWF的URL,或是MC的链接ID,这个属性是必要的,其他属性则可选. 恩,表面看,

  • springmvc使用JSR-303进行数据校验实例

    项目中,通常使用较多的是前端的校验,比如页面中js校验以及form表单使用bootstrap校验.然而对于安全要求较高点建议在服务端进行校验. 服务端校验: 控制层controller:校验页面请求的参数的合法性.在服务端控制层controller校验,不区分客户端类型. 业务层service(使用较多):主要校验关键业务参数,仅限于service接口中使用的参数. 持久层dao:一般是不校验的. 环境集成 1.添加jar包: 此处使用hibernate-validator实现(版本:hiber

  • Struts 2 数据校验功能及校验问题的解决方案

    通过继承ActionSupport类来完成Action开发,ActionSupport类不仅对Action接口进行简单实现, 同时增加了验证.本地化等支持 .真实开发中自定义Action都需要继承该类.对用户登录添加表单验证功能 ActionSupport类的作用: struts2不要求我们自己设计的action类继承任何的struts基类或struts接口,但是我们为了方便实现我们自己的action,大多数情况下都会继承com.opensymphony.xwork2.ActionSupport

  • Python+Selenium使用Page Object实现页面自动化测试

    Page Object模式是Selenium中的一种测试设计模式,主要是将每一个页面设计为一个Class,其中包含页面中需要测试的元素(按钮,输入框,标题 等),这样在Selenium测试页面中可以通过调用页面类来获取页面元素,这样巧妙的避免了当页面元素id或者位置变化时,需要改测试页面代码的情况. 当页面元素id变化时,只需要更改测试页Class中页面的属性即可. Page Object模式是一种自动化测试设计模式,将页面定位和业务操作分开,分离测试对象(元素对象)和测试脚本(用例脚本),提高

  • vue+VeeValidate 校验范围实例详解(部分校验,全部校验)

    搜索很久,没有发现有关于vue+VeeValidate部分校验的.自己写一个. 主要是两个场景: 1. 校验范围内,所有的字段. 2. 校验全局所有字段. 主要方法: 1.validate(fields, scope) 2. validateAll(fields) 场景: 遍历得到多个列表,每一个列表都可以独立保存当前列表.在保存当前列表的时候,需要校验当前列表输入框的合法性. 代码: <div class=" col-xs-12 col-md-6 col-lg-4" v-for

  • golang validator参数校验的实现

    今天在改后台页面,参数校验错误时输出全是英文,使用着很难看懂到底时什么错了 故而决定去做i18n前端国际化. 改的时候踩了很多坑,故而记录一下,顺便记录以下查问题的方式. 效果 从原来的Title is required变为标题为必填字段 完成后的代码: 这里主要定义了初始化了一个中文的trans和Validate的变量,并对其做初始化 初始化主要做了以下事情: 注册了TagName函数 // RegisterTagNameFunc registers a function to get alt

  • JS实现时间校验的代码

    常用于活动时间结束弹窗提示 注意: 1.只是JS校验时间提示,并不安全 2.前台页面的时间校验不影响后台,所以,当用户修改本地计算机时间时,可能存在不安全因素 1.直接看代码 var mydate = new Date(); var date = myDate(); function activeData(){ if(!isDateBetween(date,'2018/01/30','2018/03/31')){ //在有效时间,对应处理逻辑 }else{ //不在有效时间,对应处理逻辑 } }

  • Spring Boot项目传参校验的最佳实践指南

    目录 场景还原 神注解加持 数据异常统一拦截 总结 场景还原 简单业务场景模拟: 假如你现在在做一个成绩录入系统,你愉快地用Spring Boot框架写了一个后台接口,用于接收前台浏览器传过来的 Student对象,并插入后台数据库. 我们将传入的 Student对象定义为: public class Student { private String name; // 姓名 private Integer score; // 考试分数(满分100分) private String mobile;

  • 初学web标准的几个误区

    非常高兴地看到很多设计师开始关注和尝试使用web标准制作网页.但从网友们的问题和制作中发现几个问题,在这里特别提醒一下: 1.不是为了通过校验才标准化.web标准的本意是实现内容(结构)和表现分离,就是将样式剥离出来放在单独的css文件中.这样做的好处是可以分别处理内容和表现,也方便搜索和内容的再利用. W3C校验仅仅是帮助你检查XHTML代码的书写是否规范,CSS的属性是否都在CCS2的规范内.代码的标准化仅仅是第一步,不是说通过的校验,我的网页就标准化了.我们不是为了虚名,或者向别人炫耀:"

随机推荐