【发布时间】:2013-10-27 21:35:55
【问题描述】:
我想在 youtube iframe 视频上方放置交互控件,我只需添加 wmode=opaque 作为参数,然后将元素绝对定位在 iframe 上方,就可以正常工作。
我的问题是在移动 Safari 上 - 控件首先可以正常工作,但是当我从全屏视频返回时,它们都被禁用了。但它在桌面上运行良好。
HTML 基本上是:
<iframe src="http://www.youtube.com/embed/[ID]?wmode=opaque"></iframe>
<button id="btn">Click me</button>
然后按钮绝对位于 iframe 上方。
如需演示,请使用您的移动浏览器访问此小提琴:http://jsfiddle.net/SwGH5/embedded/result/
您会看到该按钮在单击时会发出警报。现在,播放视频并单击“完成”。然后尝试再次点击按钮...
如果电影是使用<video> 标签嵌入的,我可以监听全屏结束事件并做一些事情,但现在我被卡住了......
【问题讨论】:
-
我离开了我的开发计算机 - 但我有一个想法。我之前也遇到过类似的问题(iOS 上的绝对位置、iFrame 等)。我们发现的最奇怪的解决方案是向可点击元素(给你的按钮)添加 CSS 过渡。我们添加了一个什么都不做的过渡(比如旋转 0)。但是,我们并没有通过 youtube iFrame 执行此操作。如果我回到我的开发机器并且它仍然打开,我会看看它。
-
我不会说他们被禁用。他们只是不再开火了。如果您检查按钮,您可以看到事件已附加并且按钮未禁用。看起来像一个 iOS 错误。
-
我过去也遇到过类似的问题。看起来,因为移动 safari 中的所有视频都是本地处理的,所以本地叠加层具有“吃掉”触摸事件而不是将它们传递给下面的 DOM 的不幸后果。我还没有找到解决方法。
-
刚刚在我的 iPhone 上试了一下,同样的问题。我很好奇是否有人知道解决方案。
-
我确定您已经尝试更改
iframe上的z-index。当您使用旧的 youtube 嵌入代码 -<object width="420" height="315"><param name="movie" value="//www.youtube.com/v/9u_hp7zPir0?version=3&amp;hl=en_US&amp;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="//www.youtube.com/v/9u_hp7zPir0?version=3&amp;hl=en_US&amp;rel=0" type="application/x-shockwave-flash" width="420" height="315" allowscriptaccess="always" allowfullscreen="true"></embed></object>时会怎样?运气好吗?
标签: javascript jquery mobile iframe youtube