【发布时间】:2012-02-14 20:39:27
【问题描述】:
首先,我想向您展示一段代码。该代码是将 YouTube 电影嵌入到您的网站的简单(旧样式):
<object width="560" height="315">
<param name="movie" value="http://www.youtube.com/v/-pGYHDcQDwA?version=3&hl=da_DK"></param>
<param name="allowFullScreen" value="true"></param>
<param name="allowscriptaccess" value="always"></param>
<embed src="http://www.youtube.com/v/-pGYHDcQDwA?version=3&hl=da_DK" type="application/x-shockwave-flash" width="560" height="315" allowscriptaccess="always" allowfullscreen="true"></embed>
</object>
这很简单并且有效。
我目前的解决方案
我还有一个视频播放器,它也允许嵌入。嵌入代码基本一致:
<object width="387" height="316" align="top">
<param name="movie" value="http://example.com/embedplayer.swf"></param>
<param name="salign" value="lt" /></param>
<param name="allowFullScreen" value="true"></param>
<param name="allowscriptaccess" value="always"></param>
<param name="wmode" value="transparent"></param>
<embed src="http://example.com/embedplayer.swf" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" wmode="transparent" salign="lt" width="387" height="316"></embed>
</object>
我的问题
我想让观看者在 iPad 或 iPhone 上观看我的视频。
文件格式不是问题,因为视频已被编码为多种所需格式。
我希望拥有与 YouTube 嵌入代码类似的功能。在 iPad/iPhone 上查看带有 YouTube 嵌入代码的页面时,会出现其他内容(我猜是带有指向正确文件格式链接的图像)。
在 iPad/iPhone 上查看我自己的嵌入代码时,这显然不起作用,因为我直接链接到 SWF 文件。
我尝试了什么?
试图找出 YouTube 嵌入/对象服务的方式和内容,我只是尝试对嵌入代码 (http://www.youtube.com/v/-pGYHDcQDwA?version=3&hl=da_DK) 中指定的 YouTube URL 执行一些简单的 GET 请求,这给了我大部分 404(因为错误标题)或带有新 Flash 对象的新 HTML 源。
换句话说,我无法手动重现为 iPad/iPhone 提供的内容。
可能的/替代解决方案
YouTube 还允许使用一种新的嵌入方法。
它看起来像这样:
<iframe width="560" height="315" src="http://www.youtube.com/embed/-pGYHDcQDwA" frameborder="0" allowfullscreen></iframe>
这对我来说非常透明。在 iframe 中嵌入另一个页面允许外部页面进行检查,从而允许向客户端提供正确的内容(HTML5、Flash 或其他)。没什么大不了的。
问题
- 这对 YouTube 的旧嵌入代码有何作用?对我来说,使用 embed/object 标签应该嵌入某种指定的对象,但似乎 YouTube 的嵌入代码允许在 embed/object 元素中包含不同的内容。
- 新的(替代解决方案)会是更好的方法吗?它看起来很灵活,并且允许将来轻松维护。但我总是听说 iframe 是禁忌。
【问题讨论】:
标签: javascript html embed