如何使YouTube的嵌入代码符合HTML5标准?

3

我的页面符合HTML5的验证,直到我添加了YouTube的嵌入代码。

# 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>

有没有一种方法可以让 object、embed 和 param 标签在 HTML5 中得到验证?

请使用代码格式化工具修改以下内容以便正确显示。 - Brian Agnew
简短的问题:你为什么想要这样做?HTML 5是一个“工作草案”... 这并不完全准备好用于生产。 - Joey
HTML 5是一份工作草案...这并不完全准备好用于生产环境。你可能想告诉Google这个消息。 - Paul D. Waite
3
它可能还不完全准备好用于生产,但它比HTML4或XHTML1更适合用于生产。 - Ms2ger
具有讽刺意味的是,YouTube的HTML5演示页面http://www.youtube.com/html5也没有有效的嵌入代码! - Andrew Nesbitt
2个回答

5

将末尾标签移除并替换为自闭合标签。

例如:

<embed ...></embed>

<embed ... />

1
你可以这样做,但我觉得自闭合标签很不错 :) - user47322

2

补充Charlie的回答,更详细地说:

Embed是一个空元素,即它不能有内容。因此,在HTML序列化中,它不应该有闭合标签。

在XHTML序列化中,它必须被关闭。XML解析器不区分自闭合标记和紧接着(没有空格)后面有闭合标记的标记。但后者是多余的且容易出错,因为起始标记和闭合标记之间很容易滑入空格。

在HTML序列化中,可以使用自闭合语法来编写,这是一些作者(包括我自己)喜欢的样式约定。但是,它被解析器忽略了。

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接