不使用控件时,视频元素会在Chrome中消失
Video element disappears in Chrome when not using controls
所以-我认为这是一个浏览器错误。它出现在一个更复杂的设计/网站上,但我做了很好的工作,简化了我的代码和设计等,并发现了以下内容:
在Chrome中嵌入不带控件属性的<video>
时,使用javascript触发视频播放会导致视频元素变为空白。
http://jsfiddle.net/trolleymusic/2fHTv/
空白有点随机,有时通过滚动元素,它会重新出现。有时你需要点击/关注其他内容,大多数时候暂停视频会导致它重新出现。
我还在其中放了一行(注释掉了),以表明这不仅仅是基于点击,它也发生在通过setTimeout
调用play()
时。
不管怎样,表演一下,告诉我你的想法。
谢谢!
Wayne
(Ooo-另一个视频显示,除了controls
属性之外,另一个相同的元素运行良好。
好吧,我也可以回答我自己的问题,以备将来有人需要。
它是一个错误,在Chrome 19中运行良好。
在这种情况下,我的解决方法是检查是否有控制属性,如果没有添加,播放视频,然后删除控制属性。
看看:http://jsfiddle.net/trolleymusic/vhgss/
playVideo = function(el) {
if (!el) { return; }
if (el.getAttribute('controls') !== 'true') {
el.setAttribute('controls', 'true');
}
el.paused ? el.play() : el.pause();
el.removeAttribute('controls');
}
这似乎是一个错误。我已经通过手动挠痒痒的方式解决了这个问题$(文档)。准备好观看我的所有视频,而不是添加自动播放标签:
('#videoId').get(0).play()
我已经向Chromium项目报告了这个错误。与此同时,作为一种变通方法(Chrome 30中仍然存在),我为页面上的所有视频元素添加了控件,但将一个名为animation
的类应用于那些将由页面上的事件间接触发的元素(如滚动深度),而不是由用户直接触发的元素。
<video class="animation" preload controls>
然后,我使用jQuery:从.animations
中删除了控件
$( document ).ready(function() {
$('video.animation').removeAttr('controls');
});
这解决了我们在等待回归修复时的问题。
- Chrome WebKitGetUserMedia
- JQueryhide()不适用于Mozzilla,但适用于Chrome
- 在chrome.tabs.onCreated之后加载HTML页面
- chrome扩展中的navigator.geolocation.getCurrentPosition
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- document.open/document.write没有正确地清除chrome中的文档——这是chrome的错误吗
- chrome扩展更改主机/域警告
- Chrome开发工具(如何知道我在调用哪个javascript对象)
- 如何在chrome扩展中重定向到html页面
- Chrome扩展没有't在重新加载之前考虑期权价值
- Google/html5语音识别JavaScript SDK Chrome网络工具包SpeechRecognition
- Chrome开箱扩展插件消失
- 按钮会因Chrome中同级元素上的动画而消失
- Chrome:设置window.location.hash会导致“在页面中查找”搜索框消失
- Chrome中的斑点消失的神秘案例(在IndexedDB中)
- 不使用控件时,视频元素会在Chrome中消失
- 元素消失,直到我悬停在它们上面(Chrome)
- Firebug和chrome控制台都有消失的console.log消息
- 物化's引起Boostrap's模式/折叠在Chrome上消失
- 我的网页加载,然后立即消失.在chrome开发工具中,没有坏的请求