元素“嵌入”未定义,XHTML 1.0 Transitional(W3C)

时间:2015-02-03 19:50:24

标签: xhtml embed w3c-validation xhtml-transitional

我正在尝试将我的页面验证为XHTML 1.0 Transitional(W3C)。 我有以下错误: 元素“嵌入”未定义  + 没有属性“src”, 没有属性“质量”, 没有属性“宽度” 没有属性“高度”, 没有属性“对齐”, 没有属性“bgcolor”, 没有属性“名称”

请参阅源代码:

<embed src="<?php info(template_directory); ?>/images/top-flash.swf"
    quality="high" bgcolor="#000099"
    width="960" height="362"
    name="flash" align="left"
    allowScriptAccess="sameDomain"
    allowFullScreen="false"
    wmode="transparent"
    type="application/x-shockwave-flash"
    pluginspage="http://www.macromedia.com/go/getflashplayer"
    vspace="0" hspace="0"
    style="padding:0; margin:0;" />

请帮我通过此验证。

2 个答案:

答案 0 :(得分:3)

正如@MichaelWagner所说,元素实际上“未在XHTML 1.0 Transitional标准中定义”。 但是,另一种解决方案可能是不更改文档类型,而是将embed更改为object。 因此,包含.swf文件的代码可能如下所示:

<object type="application/x-shockwave-flash" data="TEMPLATE_DIRECTORY/images/top-flash.swf" width="960" height="362" name="flash" align="left" style="padding:0; margin:0;">
    <param name="movie" value="TEMPLATE_DIRECTORY/images/top-flash.swf" />
    <param name="allowScriptAccess" value="sameDomain" />
    <param name="allowfullscreen" value="false" />
    <param name="bgcolor" value="#000099" />
    <param name="quality" value="high" />
    <param name="wmode" value="transparent" />
    <a href="http://get.adobe.com/flashplayer/">Get Adobe Flash Player</a>
</object>

结果: This document was successfully checked as XHTML 1.0 Transitional!

以下转换适用(从embedobject):

  • allowScriptAccess="sameDomain"&gt; <param name="allowScriptAccess" value="sameDomain" />
  • allowFullScreen="false"&gt; <param name="allowfullscreen" value="false" />
  • bgcolor="#000099"&gt; <param name="bgcolor" value="#000099" />
  • quality="high"&gt; <param name="quality" value="high" />
  • wmode="transparent"&gt; <param name="wmode" value="transparent" />
  • pluginspage="http://www.macromedia.com/go/getflashplayer"&gt; <a href="http://get.adobe.com/flashplayer/">Get Adobe Flash Player</a>

不要忘记将TEMPLATE_DIRECTORY/images/top-flash.swf更改为原始<?php info(template_directory); ?>/images/top-flash.swf

答案 1 :(得分:1)

在XHTML1.0 Transitional标准中未定义embed元素。您必须删除该元素或更改您的doctype才能通过测试。