代码之家  ›  专栏  ›  技术社区  ›  Paul Dixon

如果object标签中没有classid,YouTube嵌入是如何工作的?

  •  9
  • Paul Dixon  · 技术社区  · 14 年前

    从YouTube嵌入功能获得的典型代码片段如下所示:

    <object width="660" height="405">
      <param name="movie" value="http://www.youtube.com/v/NWHfY_lvKIQ?fs=1&amp;hl=en_GB&amp;border=1"></param>
      <param name="allowFullScreen" value="true"></param>
      <param name="allowscriptaccess" value="always"></param>
      <embed src="http://www.youtube.com/v/NWHfY_lvKIQ?fs=1&amp;hl=en_GB&amp;border=1"
             type="application/x-shockwave-flash" 
             allowscriptaccess="always" 
             allowfullscreen="true" 
             width="660" 
             height="405">
      </embed>
    </object>
    

    现在 <embed> <object> 标签,浏览器似乎没有可用的信息!

    为什么是一个 classid or codebase

    • IE假设在没有其他信息的情况下嵌入Flash
    • 或者,从 < 标签

    编辑:找到一个 great comparison of Flash embedding techniques here . 还是想知道它是怎么工作的。。。

    2 回复  |  直到 12 年前
        1
  •  5
  •   Paul Dixon    14 年前

    我做了一点实验,发现 <embed>

    <embed src="http://www.youtube.com/v/NWHfY_lvKIQ?fs=1&amp;hl=en_GB&amp;border=1"
             width="660"
             height="405">
     </embed>
    

    那里没有type属性,因此浏览器必须检查src属性的MIME类型才能确定要做什么。我通过使用不同的MIME类型提供一个Flash文件来验证这一点——除非我提供application/x-shockwave-Flash的type属性,否则它不会播放(这种行为是为IE记录的) here )

    <object> 标签 <嵌入>

    <OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
    codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" WIDTH="660" HEIGHT="405" id="adobeWay">
    <PARAM NAME=movie VALUE="http://www.youtube.com/v/NWHfY_lvKIQ?fs=1&amp;hl=en_GB&amp;border=1">
    <PARAM NAME=quality VALUE=high>
    <PARAM NAME=bgcolor VALUE=#FFFFFF>
    
    <embed src="http://youtube.com/v/rIFh1ydXWmg"
             type="application/x-shockwave-flash"
             allowscriptaccess="always"
             allowfullscreen="true"
             width="660"
             height="405">
      </embed>
    
    </OBJECT>
    

    当使用object标签时,Flash插件并不关心电影的MIME类型。同样,我通过提供一个具有不同MIME类型的有效SWF文件来验证这一点。

    从上一个测试中删除classid,您将在 <嵌入> 标签。 <param> 如果标签只是在YouTube风格的嵌入中被忽略的话。

    摘要

    当没有 classid 中的属性 <对象> (或任何其他确定所需插件的方法,如数据属性),即呈现在object标记中可以找到的任何东西,这意味着它将呈现 < object fallback ). 如果该标签不包含 type src

        2
  •  0
  •   Delan Azabani    14 年前

    是MIME类型。这是由服务器发送的,以帮助浏览器识别内容的类型。MIME类型与助手插件相关联。