嵌入JavaScript?或者可能使用了其他技术

Embedding JavaScript? Or maybe some other technology is used?

本文关键字:其他 技术 JavaScript 或者 嵌入      更新时间:2023-09-26

首先,我想向您展示一段代码。代码是一个简单的(老式)嵌入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嵌入/对象的服务方式和内容,我只尝试对嵌入代码中指定的YouTube URL进行一些简单的GET请求(http://www.youtube.com/v/-pGYHDcQDwA?version=3&hl=da_DK),这给了我大部分的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的旧嵌入代码来说是如何工作的?对我来说,使用嵌入/对象标签应该嵌入某种指定的对象,但YouTube的嵌入代码似乎允许在嵌入/对象元素中使用不同的内容
  2. 新的(替代解决方案)会是更好的方法吗?它看起来很灵活,并允许未来轻松维护。但我总是听说iframes是个禁忌

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

我似乎看错了方向。

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

看来,通过内容协商,设备浏览器能够用在设备上启动YouTube应用程序所需的元素替换对象/嵌入标签。

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

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