diff options
Diffstat (limited to 'src/js/plyr.js')
-rw-r--r-- | src/js/plyr.js | 39 |
1 files changed, 32 insertions, 7 deletions
diff --git a/src/js/plyr.js b/src/js/plyr.js index d5fbb342..028f8c2c 100644 --- a/src/js/plyr.js +++ b/src/js/plyr.js @@ -503,14 +503,25 @@ // Toggle class on an element function _toggleClass(element, className, state) { if (element) { - element.classList[state ? 'add' : 'remove'](className); + if (element.classList) { + element.classList[state ? 'add' : 'remove'](className); + } + else { + var name = (' ' + element.className + ' ').replace(/\s+/g, ' ').replace(' ' + className + ' ', ''); + element.className = name + (state ? ' ' + className : ''); + } } } // Has class name function _hasClass(element, className) { if (element) { - return element.classList.contains(className); + if (element.classList) { + return element.classList.contains(className); + } + else { + return new RegExp('(\\s|^)' + className + '(\\s|$)').test(element.className); + } } return false; } @@ -977,7 +988,7 @@ _log('It looks like there is a problem with your controls html', true); // Restore native video controls - plyr.media.setAttribute('controls', ''); + _toggleControls(true); return false; } @@ -988,6 +999,16 @@ _toggleClass(plyr.container, defaults.selectors.container.replace('.', ''), plyr.supported.full); } + // Toggle native controls + function _toggleControls(toggle) { + if(toggle) { + plyr.media.setAttribute('controls', ''); + } + else { + plyr.media.removeAttribute('controls'); + } + } + // Setup aria attribute for play and iframe title function _setTitle(iframe) { // Find the current text @@ -1019,9 +1040,6 @@ } if (plyr.supported.full) { - // Remove native video controls - plyr.media.removeAttribute('controls'); - // Add type class _toggleClass(plyr.container, config.classes.type.replace('{0}', plyr.type), true); @@ -2365,7 +2383,7 @@ } // Restore native video controls - plyr.media.setAttribute('controls', ''); + _toggleControls(true); // Clone the media element to remove listeners // http://stackoverflow.com/questions/19469881/javascript-remove-all-event-listeners-of-specific-type @@ -2457,6 +2475,10 @@ // Remove controls _remove(_getElement(config.selectors.controls.wrapper)); + // Restore native controls + _toggleControls(true); + + // Bail return; } @@ -2466,6 +2488,9 @@ _injectControls(); } + // Remove native controls + _toggleControls(); + // Find the elements if (!_findElements()) { return; |