Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
嵌入JavaScript?或者使用了其他技术?_Javascript_Html_Embed - Fatal编程技术网

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

嵌入JavaScript?或者使用了其他技术?,javascript,html,embed,Javascript,Html,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="tr

首先,我想给大家看一段代码。代码是将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上观看我的视频。
文件格式不是问题,因为VidoE已经编码为几种需要的格式

我想要的是具有与YouTube嵌入代码类似的功能。在iPad/iPhone上查看带有YouTube嵌入代码的页面时,会出现其他内容(我猜是一张带有正确文件格式链接的图像)

在iPad/iPhone上查看我自己的嵌入代码时,这显然不起作用,因为我直接链接到SWF文件

我试过什么?

为了找出YouTube嵌入/对象的服务方式和内容,我只是简单地尝试了对嵌入代码()中指定的YouTube URL执行一些简单的GET请求,这给了我的大部分404请求(因为标题不好)或一个新的HTML源和一个新的Flash对象。
换句话说,我无法手动复制iPad/iPhone的服务内容

可能的/替代解决方案

YouTube还提供了一种新的嵌入方法。
看起来是这样的:

<iframe width="560" height="315" src="http://www.youtube.com/embed/-pGYHDcQDwA" frameborder="0" allowfullscreen></iframe>

这对我来说是相当透明的。在iframe中嵌入另一个页面允许外部页面进行检查,从而允许向客户端提供正确的内容(HTML5、Flash或其他内容)。没什么大不了的

问题

  • YouTube的旧嵌入代码是如何工作的?对我来说,使用嵌入/对象标记应该嵌入某种指定的对象,但YouTube的嵌入代码似乎允许嵌入/对象元素中的不同内容
  • 新的(替代解决方案)是更好的方法吗?它看起来很灵活,允许将来进行简单的维护。但我总是听说iframes是个禁忌

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

    看来我看错方向了

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

    似乎通过,设备浏览器能够用启动设备上YouTube应用程序所需的元素替换对象/嵌入标记

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


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

    +1。YouTube已经在没有Flash的支持设备上提供[HTML5视频](en.wikipedia.org/wiki/HTML5_video)。我有点明白了——我在我的问题中这样说过。我不知道嵌入/对象中的内容如何显示图像、flash或HTML5。它不返回flash和HTML5的代码,而是返回其中一个。对于图像,虽然可以使用javascript实现封面图像并操纵z索引,但通常播放器会提供一种方式,在显示封面图像时将其作为参数传递给flash播放器。例如,许多网站将jwplayer与swfobject库结合使用,提供javascript包装器,以编程方式将参数传递给播放器。我没有这么说-我说的是“为客户端提供正确的内容(HTML5、Flash或其他内容)”,你没有回答我的任何问题。发布我在问题中已经讨论过的内容不能作为答案。