aboutsummaryrefslogtreecommitdiffstats
path: root/src/js/plyr.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/js/plyr.js')
-rw-r--r--src/js/plyr.js39
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;