虽然验证我对某些人来说不是一个大问题,但我个人希望我的页面尽可能验证,因为我认为编译/浏览器/阅读代码的人是否理解是一个很好的习惯。
无论如何,我正在为一个客户建立一个网站,要求将他们的YouTube视频嵌入到页面中。很简单,我从YouTube中获取代码并将其放入页面中。它当然有效,但该页面现在不能仅仅因为YouTube生成的代码而在XHTML 1.0 Strict下验证。
未验证的部分是嵌入部分,并且在Chrome中没有此行的情况下工作正常,但在Firefox / IE中中断。如果它只是IE浏览器,我只是耸耸肩,因为IE通常是可怕的,但正如Firefox正在做的那样我也想知道如何处理这种情况。我可以根据浏览器动态输入内容,因此验证,但这似乎很草率。
我是否正在打一场失败的战斗,应该忽略这个页面因为这个片段而无法验证的事实?
<object width="480" height="385">
<param name="movie" value="http://www.youtube.com/v/oHg5SJYRHA0?fs=1&hl=en_US"></param><param name="allowFullScreen" value="true"></param>
<param name="allowscriptaccess" value="always"></param>
<embed src="http://www.youtube.com/v/oHg5SJYRHA0?fs=1&hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed>
</object>
答案 0 :(得分:3)
<object type="application/x-shockwave-flash"
data="http://www.youtube.com/v/oHg5SJYRHA0?fs=1&hl=en_US"
width="480" height="385">
<param name="movie"
value="http://www.youtube.com/v/oHg5SJYRHA0?fs=1&hl=en_US"/>
<param name="allowFullScreen" value="true"/>
<param name="allowscriptaccess" value="always"/>
</object>
这应该适用于IE,Firefox,Opera,Safari和Chrome。
data
的{{1}}属性和<object>
参数必须同时存在且必须具有相同的值。
在IE中,这可以防止SWF流式传输,例如,呈现预加载器,但这应该不是YouTube的问题。
有关更多内容以及针对最后一个问题的修复,请参阅Flash Satay: Embedding Flash While Supporting Standards。
答案 1 :(得分:0)
我认为如果你使用swfobject,你可以让它验证。
答案 2 :(得分:0)
<embed>
标记是HTML5的新标记,您使用的验证程序很可能并非完全是最新的。在XHTML 1.0 strict中,所有代码都应该非常好。
答案 3 :(得分:0)
我担心上述答案仍会导致验证失败W3C。这是一个适用于xhtml strict的解决方案;
<object type="application/x-shockwave-flash" data="https://www.youtube.com/v/YourVideoID" width="100%" height="100%"></object>