Video element disappears in Chrome when not using controls Video element disappears in Chrome when not using controls google-chrome google-chrome

Video element disappears in Chrome when not using controls


Well I may as well answer my own question in case anyone needs it in the future.

It IS a bug, it works fine in Chrome 19.

My workaround in this case was to check if there was a control attribute, if not add it, play the video then remove the control attribute.

Check it out: 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');}


This does seem to be a bug. I have worked around this by manually tickling the play method in$(document).ready for all my videos instead of adding the autoplay tag:

('#videoId').get(0).play()


I've reported this bug to the Chromium project. In the meantime, as a workaround (still present in Chrome 30), I added controls to all video elements on the page, but applied a class called animation to those that will be triggered indirectly by events on the page (like scroll depth) rather than directly by the user.

<video class="animation" preload controls>

I then removed the controls from .animations using jQuery:

$( document ).ready(function() {  $('video.animation').removeAttr('controls');});

This solves the issue while we're waiting on a fix for the regression.