据我所知,将Flash与JS嵌入的好处是:

  • 查询navigator对象并查看安装了哪些Flash版本的功能,可能会扩展到该版本上并根据此
  • 提供不同的内容
  • 一致的附加Flash方法,因为脚本会保留标记,通常只需要指定srcflashvars,尺寸
  • 依靠帮助程序实用程序来嵌入swf,从而节省时间,而不必担心复杂的细节
  • 如果每个站点嵌入多个对象,则能够提供一致的回退。

  • 缺点:

    没有闪存但启用了JS的
  • 设备将完全失败
  • 人们变得懒惰并且不提供后备内容
  • 如果
  • 代码需要跨浏览器兼容,那么它就是一团糟。有很多常见嵌入(甚至是youtube嵌入)的错误,“最佳”跨浏览器似乎是每个this将一个对象嵌套在一个对象中。但是我意识到,我可以使用服务器端方法并定义一次嵌入代码,然后在一个区域中对其进行更改,但这使它无法在CMS textareas中嵌入/使用。

  • 优点似乎胜过缺点。我对移动内容的了解还不够,无法获得准确的意见。谁能想到为什么/为什么不呢?

    最佳答案

    缺点:

    不含Flash但启用了JS的

  • 设备
    将完全失败


    正如@Lars在他的评论中指出的那样,我认为通过JS检测Flash是一种为不同平台(操作系统,浏览器,Flash Player版本)注入(inject)不同内容(swf)的故障安全方法。同时禁用Flash和JS的设备是可能会崩溃的设备,但是这只是一个很小的百分比。我想不出一种简单的方法来规避这一点。
  • 人们变得懒惰,不提供
    后备内容。


    这显然是非常主观的。我对SwfObject的使用经验很少,但是在我的情况下,当我们检测到没有闪存的情况时,我们就退回到使用大量JS来模拟模块的基于HTML DOM的纯解决方案。我的观点是,使用SwfObject,提供替代内容非常容易,而且我不明白为什么任何优秀的开发人员都不会做到这一点。
  • 如果需要,
  • 代码是一团糟
    跨浏览器兼容。有
    具有常见嵌入的各种错误(
    甚至youtube的)和“最佳”
    跨浏览器似乎正在嵌套
    每个对象中的一个对象。一世
    意识到虽然,我可以使用
    服务器端方法并定义
    一次嵌入代码并在其中进行更改
    一个区域,但这使其不
    可嵌入/可用于CMS textareas。


    我想我会在一定程度上同意这一点。不同的嵌入方法是一团糟。 StackOverflow上有一个讨论此问题的线程:Best way to embed flash in html

  • 在某些情况下,除了使用Flash之外别无选择,例如:具有上载百分比反馈的文件上载器(因为常规的INPUT标签Type FILE太陈旧了)。当然,有一种新的方法可以做upload progress bar using just javascript,但是在您知道IE的情况下它是行不通的:)

    在这种情况下,无法摆脱Flash IMHO。

    09-20 14:18