<embed>标签不是已经存在一段时间了吗?

6
根据W3SchoolsPluralsight's的HTML5课程,<embed>标签是HTML5中的“新”标签。但是我一直在使用它,而且在我测试过的所有浏览器中都可以正常工作,例如此页面就使用了<embed>标签并且在所有浏览器中都可以正常工作。
为什么呢?这只是一份草案,被渴望的浏览器制造商提前实现了吗?

1
有趣的是,昨天我在StackOverflow上就这个问题进行了辩论。看看w3fools.com。 - Aater Suleman
@AaterSuleman 是的,我看过了。 :) 你是在说W3Schools关于这个的内容是错误的吗? - Thomas Shields
是的,我想是这样。昨天我在为w3schools网站辩护,但我的对手说服了我,他们有很多漏洞,你的独立观察也支持了他们的说法,所以我放弃了 :) - Aater Suleman
@Aater:实际上,我刚刚做了一些研究。在这种情况下,至少W3Schools似乎是准确的,尽管这让我感到痛苦。请查看我的答案以获取更多信息和证明链接。 - Matthew Scharley
1
这是“铺设奶牛小径”的一个例子,这是HTML5的设计原则之一。http://www.w3.org/TR/html-design-principles/#pave-the-cowpaths - james.garriss
4个回答

4

Mozilla文档 赞同 W3Schools (这一次)的观点,但是你是正确的。<embed> 已经使用了很长时间,但是在HTML5中才被适当地标准化。

HTML 4正式使用<object>。与几个源声称<embed>在HTML 4中不推荐使用相反,我无法在HTML 3 DTD(或3.2)中找到任何提及它的内容,这意味着它可能从未被正式标准化。HTML 2似乎更不发达(正如人们所期望的)。有关<applet>的文档很多,但我无法在任何官方文件中找到<embed>的任何提及。

3
经过一番研究和大家的帮助,我发现 <embed> 标签最初是由网景公司引入的,用于显示图像和类似内容。显然,它从未被正式纳入标准(我在 W3C 的 HTML 3 和 XHTML 标准中都进行了检查)。但是,为了与网景公司竞争,Internet Explorer 实现了它,并且它就这样传开了。
链接: http://1997.webhistory.org/www.lists/www-talk.1995q3/0578.html http://w3.org/

2
据我了解,“<embed>”当时并不受HTML4标准的编写者们喜欢,因为它是一个空元素,因此作者无法在用户使用不支持嵌入的浏览器时添加备选内容。在这个意义上,“<object>”更加优秀,因此其使用受到了标准化的鼓励。“<embed>”被“反对”,而不是被“弃用”。现在几乎没有不支持<embed>的浏览器了,而且HTML5对备选内容的处理方式有所不同,所以这并不是HTML5的问题。 - Alohci

2
< p > < code > embed 不是 W3C 标准的一部分,但对于浏览器来说还是非常有用的。HTML5 对于实用性很注重,因此它被包含在了标准中。


1
@Thomas 我会去谷歌一下,但我的直觉告诉我这是来自很久以前的IE vs Netscape。 - Ian Fleeton

1

<embed> 标签实际上已经存在一段时间了,但在 HTML4 和 XHTML1 中被弃用。它在 HTML5 中被重新引入。

** 已更正。 :)


那么它在HTML3中是有效的吗?哦等等,没有HTML3...或者没有JS3...无论如何,在以前的HTML中是有效的。 - Thomas Shields
也许W3学校是正确的。争论仍在继续。哈哈。 (参见上面的评论) - Aater Suleman
啊,刚刚查了一下,我以为它在3.2版本中就有了。我把它和applet标签搞混了。看起来这是“新”的东西。 :) - musaul
1
@Thomas 请看一下我的回答。我已经追溯到了HTML2的所有规格,没有任何关于<embed>的提及,但是有很多关于<applet>和类似的内容。 - Matthew Scharley

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