【问题标题】:<embed> tag in HTML not supported不支持 HTML 中的 <embed> 标记
【发布时间】:2013-05-27 09:59:22
【问题描述】:

我在使用&lt;embed> 标记放置 .swf 的 ASP.NET 项目中收到以下警告:

警告:验证(XHTML 1.0 过渡):不支持元素“嵌入”。

什么是“支持”的方式来代替???

【问题讨论】:

  • 人们在网页中放入的 许多 东西 验证,但这并不能阻止它们正常工作。

标签: validation xhtml embed


【解决方案1】:

XHTML 不支持非标准的embed 标记,而支持基于标准的object 元素。有关这方面的更多信息,请参阅http://www.bernzilla.com/item.php?id=681,但简而言之:

<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="No Flash" />
</object>

请记住,虽然使用object 并不总是在旧版浏览器中正常工作,但请先使用这两种格式进行一些测试。 A List Apart 对此有一篇精彩的文章,名为“Flash Satay: Embedding Flash While Supporting Standards”,它向您展示了如上例所示的跨浏览器实现方式。

【讨论】:

  • @meder 很好,我今天的打字很糟糕。 =]
  • &lt;embed&gt; 在任何版本的 HTML 中都没有被弃用,因为它从未出现在任何规范中(现在 HTML5 除外)。请参阅stackoverflow.com/questions/5972555/… 了解更多信息。
【解决方案2】:

可能值得研究SWFObject,很多项目都使用它,以便他们可以验证并轻松地以跨浏览器的方式动态嵌入视频。如果不需要动态嵌入或版本检测,Dereleased 指向的 Flash satay 方法是另一个好方法。

【讨论】:

    【解决方案3】:

    HTML5(以及 XHTML5)现在允许 &lt;embed&gt; 元素。切换到 HTML5 (&lt;!DOCTYPE html&gt;) 即可验证。

    【讨论】:

      【解决方案4】:

      本文非常详细地描述了如何在保持标准的同时嵌入 Flash 文件:

      A List Apart: Flash Satay: Embedding Flash While Supporting Standards

      【讨论】:

        【解决方案5】:

        使用&lt;object&gt; 元素。

        见:http://www.w3.org/TR/REC-html40/struct/objects.html#h-13.3

        embed 不是标准的,但得到了最广泛的支持。

        <object type="application/x-shockwave-flash" data="movie.swf">
             <param name="movie" value="movie.swf" /> 
        </object>
        

        您当然可以将其他参数元素用于窗口模式 (wmode) 等。但请注意,在 IE 中,电影需要点击才能激活,这就是为什么许多人使用 JS 为所有浏览器动态替换元素为 embed,因此无需在 IE 中进行点击。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-05-03
          • 1970-01-01
          • 2023-01-31
          • 2012-09-29
          • 2011-01-16
          • 1970-01-01
          • 1970-01-01
          • 2015-06-28
          相关资源
          最近更新 更多