【问题标题】:How do I get YouTube's embed code validate against HTML5?如何让 YouTube 嵌入代码针对 HTML5 进行验证?
【发布时间】:2010-12-30 02:36:30
【问题描述】:

在我添加 YouTube 的嵌入代码之前,我的页面已针对 HTML5 验证无错误。

# Line 140, Column 132: Stray end tag param.

    …O30JM&amp;hl=en_US&amp;fs=1"></param><param name="allowFullScreen" value="tru

# Error Line 140, Column 183: Stray end tag param.

    …llowFullScreen" value="true"></param><param name="allowscriptaccess" value="a

# Error Line 140, Column 238: Stray end tag param.

    …scriptaccess" value="always"></param><embed src="http://www.youtube.com/v/1rW

# Error Line 140, Column 430: Stray end tag embed.

    …ways" allowfullscreen="true"></embed></object>

有没有办法让对象、嵌入和参数标签针对 HTML5 进行验证?

【问题讨论】:

  • 已编辑以正确渲染。请使用代码格式化工具
  • 抛开一个小问题:你为什么要这样做? HTML 5 是一个工作草案 ...这还没有完全准备好用于生产。
  • “HTML 5 是一个工作草案......这还没有完全准备好用于生产。”那你可能想告诉谷歌。
  • 它可能还没有准备好用于生产,但它比 HTML4 或 XHTML1 更适合生产使用。
  • 具有讽刺意味的是 youtubes html5 演示页面 youtube.com/html5 也没有有效的嵌入代码!

标签: flash html youtube


【解决方案1】:

删除结束标签并用自闭标签替换它们。

例如。

<embed ...></embed>

<embed ... />

【讨论】:

  • 你可以,但我发现自闭标签有一些好处:)
【解决方案2】:

添加到查理斯的答案,并提供更多细节:

Embed 是一个 void 元素,即它可以没有内容。因此,它在 HTML 序列化中不能有结束标记。

在 XHTML 序列化中它必须被关闭。 XML 解析器不区分自结束标记和紧跟(无空格)后跟结束标记的标记。但是后者是多余的并且容易出错,因为空白很容易在开始标签和结束标签之间滑入。

它可以在 HTML 序列化中使用自闭合语法编写,包括我自己在内的一些作者更喜欢将其作为样式约定。但是,解析器会忽略它。

因此,在 void 元素上总是允许使用自闭合语法,但有时是多余的。

http://dev.w3.org/html5/markup/syntax.html#syntax-elements

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-28
    • 2012-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-31
    • 1970-01-01
    • 2021-09-02
    相关资源
    最近更新 更多