ios - 当 HTML5 搜索输入可见时,嵌入式 YouTube 视频无法在 iPad (iOS 7) 上播放

标签 ios css html ipad youtube

这是一个我已经设法通过暴力修复的错误,但我不明白为什么该解决方案有效。

问题是嵌入的 YouTube 视频无法在 iPad(在 iOS7 中测试)的横向 View 中的特定(响应式)网站上运行。我设法将其缩小到一个特定的 CSS 规则,该规则在浏览器足够宽时在标题中显示搜索输入,因此它会在 iPad 的横向 View 中显示,但不会在纵向 View 中显示。

经过一些暴力破解后,我发现从输入标签中删除 type="search"(这会导致它退回到默认的 type="text") 将解决问题。我的搜索都没有给出为什么这有效的解释,甚至没有任何其他人遇到同样的事情。

关于错误的更多细节

该网站首先显示一张图片,点击后会通过 JavaScript 将其替换为 YouTube iframe。第一次点击后,它会在桌面浏览器上自动播放,而在 iPad 上它会加载视频但不会播放,直到用户再次按下它。

如果 type="search" 输入是可见的 (display: block;),那么点击嵌入的视频将不会播放它;水龙头不会有明显的 react 。如果我放大并点击顶部的控件,例如视频的名称,我可以看到它们带有下划线,测试表明没有元素覆盖 iframe 和拦截事件。

奇怪的是,点击 iframe 右侧的边缘会导致视频开始正​​确播放。否则,将 iPad 更改为纵向 View (导致通过 CSS 隐藏搜索输入)将使点击 iframe 以开始播放视频。第一次点击后,无论搜索输入是否显示,所有视频控件都会起作用。

最佳答案

我自己亲身经历了这一点,我想对你写下这篇文章表示敬意。你的 SO 问题,即使没有答案,也为我指明了正确的方向。

就我而言,这与 Youtube 无关。我在一个大型站点中有一个由 Drupal 生成的页面,其中站点范围的搜索机制使用了一个自动完成的 drupal 模块,该模块将 type="search" 作为主要输入的类型。

在 IOS 中,用户报告说 Facebook、Twitter 和 Google Plus 各自的“喜欢”按钮都不起作用,页面中嵌入了一个更大的 Angular 应用程序。他们都使用 iframe,但似乎都没有响应点击。

将这个看似无害、无关的输入类型从 search 更改为 text 立即解决了这个问题。

莫名其妙。

关于ios - 当 HTML5 搜索输入可见时,嵌入式 YouTube 视频无法在 iPad (iOS 7) 上播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19507930/

相关文章:

css - `all: unset` 和 `all: revert' 有什么区别

jquery - 如何更改我的 Jquery 幻灯片以在不同的屏幕分辨率下更改大小

html - 按钮下方的边框

html - 为什么我的页眉和正文之间有填充?

html - CSS - 完全删除列之间的间距?

ios - 将 Objective-C 框架暴露给 Swift

ios - 有什么方法可以在没有循环的情况下检查指向指针的 bool** 指针是否包含 C 中的真值?

ios - 如何根据 swift 3 中的 Collection View 高度动态增加 TableView 高度?

css - 位于 div-cover-background 之上的图像,按比例调整大小

ios - UIImagePickerController 中的图像版本错误