Javascript 不同iOS版本的JS YouTube嵌入交换不一致

Javascript 不同iOS版本的JS YouTube嵌入交换不一致,javascript,iphone,mobile-safari,youtube-api,Javascript,Iphone,Mobile Safari,Youtube Api,所以我在一个有视频的移动网站上工作。我使用提供的YouTube API在不同的设备上切换flash和HTML5,但出于两个不同的原因,我使用自定义缩略图 我使用一些javascript隐藏YouTube iframe,直到用户单击图片,然后它应该将图像交换为视频onClick,调用switchItUp方法 API指定的YouTube代码如下所示,仅在页面上运行时有效: <iframe src="http://www.youtube.com/embed/BaKcl0Qg13o?autopla

所以我在一个有视频的移动网站上工作。我使用提供的YouTube API在不同的设备上切换flash和HTML5,但出于两个不同的原因,我使用自定义缩略图

我使用一些javascript隐藏YouTube iframe,直到用户单击图片,然后它应该将图像交换为视频onClick,调用switchItUp方法

API指定的YouTube代码如下所示,仅在页面上运行时有效:

<iframe src="http://www.youtube.com/embed/BaKcl0Qg13o?autoplay=1" width="300" height="190"></iframe>
这是有趣的部分

这在Safari 4.0上非常有效。 在4.1中,onClick显示视频,但不能播放。 在4.2中,视频根本不显示,但在图像隐藏时会在页面上留下巨大的空白。 它在所有桌面浏览器上都非常有效,因此调试这是一个问题

感谢您的帮助!蒂娅

编辑:播放器必须处于自动播放状态,才能在单击一次后进行交换,因此它必须在页面上显示为display:none


此外,容器是否会导致此问题?它当前正在页面上的中呈现,在显示:无之前未设置显示:块。

尝试通过将视频定位到屏幕外而不是使用display=none来隐藏视频。这是解决此类问题的经典方法

video.style.position = 'absolute';
video.style.top = '-10000px';
video.style.left = '-10000px';
然后你可以用它来“展示”

video.style.position = 'static'

尝试通过将视频定位在屏幕外而不是使用display=none来隐藏视频。这是解决此类问题的经典方法

video.style.position = 'absolute';
video.style.top = '-10000px';
video.style.left = '-10000px';
然后你可以用它来“展示”

video.style.position = 'static'

由于自动播放在4.2中不起作用,我们决定取消缩略图交换。没有一种方法可以在所有iOS版本中实现这一点。因此,我们只是使用一些youtube生成的缩略图。

由于4.2中的自动播放不起作用,我们决定取消缩略图交换。没有一种方法可以在所有iOS版本中实现这一点。因此,我们只是使用一些youtube生成的缩略图。

遗憾的是,这不起作用,因为播放器必须处于自动播放状态,用户不必点击两次,因此无法将其定位在页面之外。我避免在页面加载时加载播放器,以节省带宽和用户在3G上的数据计划。不过,谢谢你的建议。遗憾的是,这行不通,因为播放器必须处于自动播放状态,用户才不必点击两次,因此无法将其定位在页面外。我避免在页面加载时加载播放器,以节省带宽和用户在3G上的数据计划。谢谢你的建议。