嵌入JavaScript?或者也许使用其他一些技术?

时间:2012-01-20 08:44:51

标签: javascript html5 embed

首先,我想向您展示一段代码。该代码是一种将YouTube电影嵌入您网站的简单(旧式):

<object width="560" height="315">
    <param name="movie" value="http://www.youtube.com/v/-pGYHDcQDwA?version=3&amp;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&amp;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网址做一些简单的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或其他内容)。没什么大不了的。

问题

  1. 这对YouTube的旧嵌入代码有何影响?对我来说使用embed / object标签应该嵌入某种指定的对象,但似乎YouTube的嵌入代码允许嵌入/对象元素中的不同内容。
  2. 新的(替代解决方案)是更好的方法吗?它看起来很灵活,可以方便维护。但我总是听说iframe是禁忌的。

2 个答案:

答案 0 :(得分:1)

他们正在使用服务器端脚本来执行代理检测,并根据他们检测到的用户代理提供不同的内容。

答案 1 :(得分:0)

似乎我看错了方向。

问题一:
在iPhone / iPad上使用嵌入代码测试其他视频网站给了我预期的结果 - 一个空白区域。

似乎通过Content Negotiation,设备浏览器可以将对象/嵌入代码替换为在设备上启动YouTube应用程序所需的元素。

这意味着我无法创建类似的解决方案,这意味着我必须创建/使用HTML5视频播放器或使用iframe的替代解决方案(我可以将两者结合起来)。

这使得回答第二个问题变得多余,因为我没有其他选择。