【问题标题】:How might I update this code我该如何更新此代码
【发布时间】:2008-11-07 14:41:39
【问题描述】:
   <object height="25" width="75" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">
        <param value="http://click-here-to-listen.com/players/iaPlay13.swf?x=1058286910FTRZGK" name="movie"/> 
        <param value="high" name="quality"/>
        <param value="#FFFFFF" name="bgcolor"/> 
        <param value="opaque" name="wmode"/>
        <embed height="25" width="75" wmode="opaque" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" bgcolor="#FFFFFF" quality="high" src="http://click-here-to-listen.com/players/iaPlay13.swf?x=1058286910FTRZGK"/>
    </object>

我必须将此旧标记插入到我正在构建的新网站中。问题是它使用了&lt;embed&gt; 标签。

对于那些没有 F​​lash 的用户,我是否可以取消 &lt;embed&gt; 并放入一些内容作为替代?基本上我只是想把这段 html 带入 21 世纪。

【问题讨论】:

    标签: html legacy


    【解决方案1】:

    您可以嵌套对象元素以显示备选方案。 W3C 解释它here。我在下面复制了一个sn-p:

    OBJECT 元素设计的一个重要结果是它提供了一种指定替代对象渲染的机制;每个嵌入的 OBJECT 声明都可以指定替代的内容类型。如果用户代理无法渲染最外层的 OBJECT,它会尝试渲染内容,可能是另一个 OBJECT 元素等。

    在下面的示例中,我们嵌入了几个 OBJECT 声明来说明替代渲染的工作原理。用户代理将尝试按以下顺序呈现它可以呈现的第一个 OBJECT 元素:(1) 用 Python 语言编写的地球小程序,(2) 地球的 MPEG 动画,(3) 地球的 GIF 图像, (4) 替代文本。

    <P>                 <!-- First, try the Python applet -->
    <OBJECT title="The Earth as seen from space" 
        classid="http://www.observer.mars/TheEarth.py">
                    <!-- Else, try the MPEG video -->
        <OBJECT data="TheEarth.mpeg" type="application/mpeg">
                    <!-- Else, try the GIF image -->
          <OBJECT data="TheEarth.gif" type="image/gif">
                    <!-- Else render the text -->
           The <STRONG>Earth</STRONG> as seen from space.
         </OBJECT>
       </OBJECT>
    </OBJECT>
    

    【讨论】:

      【解决方案2】:

      我建议您使用 swfobject,它是一个跨平台的开源库,可以在您的页面上显示 Flash。

      http://code.google.com/p/swfobject/

      有多种方法可以加载 Flash 和替代(非 Flash)内容。例如以下代码可以替换您的代码:

      <script type="text/javascript" src="swfobject.js"></script>
      <script type="text/javascript">
          swfobject.embedSWF("http://click-here-to-listen.com/players/iaPlay13.swf?x=1058286910FTRZGK", 
              "myContent", "25", "75", "9.0.0");
      </script>
      <div id="myContent">
        <p>Alternative content</p>
      </div>
      

      【讨论】:

        【解决方案3】:

        基本上,您应该继续嵌入,因为它是一些旧浏览器的后备。这可能会影响页面的验证,但只要您知道它为什么存在,就可以了。

        至少这是 Adob​​e 官方推荐的方式:Macromedia Flash OBJECT and EMBED tag syntax

        你想做二十一世纪的代码是对的,但我们必须处理上千年的浏览器...... :-)

        【讨论】:

        • 是的,但是您想通过使用“embed”标签来处理哪种浏览器?据我所知,即使是 IE 6 也可以在没有“嵌入”的情况下以“对象”标签播放 Flash 电影。这可能是当今人们必须处理的最糟糕的浏览器之一......
        【解决方案4】:

        我使用函数 AC_FL_RunContent 来嵌入 Flash 对象 - 这很好,因为它支持所有浏览器并且是 Adob​​e 推荐的。

        更多的是here:

        他们还建议使用 标签而不是

        【讨论】:

          【解决方案5】:

          我在网络上找到了这段代码(来自一个可用性网站),它适用于 IE 和其他人,我在我的 Flash 页面上使用它(我已将其更改为您的代码):

          <!--[if !IE]> -->
          <object type="application/x-shockwave-flash" data="http://click-here-to-listen.com/players/iaPlay13.swf?x=1058286910FTRZGK" width="75" height="25">
          <!-- <![endif]-->
          
          <!--[if IE]>
          <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="75" height="25">
            <param name="movie" value="http://click-here-to-listen.com/players/iaPlay13.swf?x=1058286910FTRZGK" />
          <!--><!--dgx-->
            <param name="loop" value="false">
            <param name="menu" value="false">
            <param name="quality" value="high">
          </object>
          <!-- <![endif]-->
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-05-30
            • 1970-01-01
            • 2021-11-18
            相关资源
            最近更新 更多