Using the “href” attribute on SVG if supported, using hasAttribute

This commit is contained in:
Sam Potts 2017-11-07 09:58:37 +11:00
parent 84505da84b
commit e2c7491ccd
5 changed files with 20 additions and 10 deletions

2
dist/plyr.js vendored

File diff suppressed because one or more lines are too long

2
dist/plyr.js.map vendored

File diff suppressed because one or more lines are too long

11
src/js/controls.js vendored
View File

@ -73,7 +73,16 @@ const controls = {
// Create the <use> to reference sprite // Create the <use> to reference sprite
const use = document.createElementNS(namespace, 'use'); const use = document.createElementNS(namespace, 'use');
use.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', `${iconPath}-${type}`); const path = `${iconPath}-${type}`;
// If the new `href` attribute is supported, use that
// https://github.com/sampotts/plyr/issues/460
// https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/xlink:href
if ('href' in use) {
use.setAttribute('href', path);
} else {
use.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', path);
}
// Add <use> to <svg> // Add <use> to <svg>
icon.appendChild(use); icon.appendChild(use);

View File

@ -57,8 +57,8 @@ const defaults = {
// Set loops // Set loops
loop: { loop: {
active: false, active: false,
start: null, // start: null,
end: null, // end: null,
}, },
// Speed default and options to display // Speed default and options to display

View File

@ -170,21 +170,22 @@ class Plyr {
case 'audio': case 'audio':
this.type = type; this.type = type;
if (this.media.getAttribute('crossorigin') !== null) { if (this.media.hasAttribute('crossorigin')) {
this.config.crossorigin = true; this.config.crossorigin = true;
} }
if (this.media.getAttribute('autoplay') !== null) { if (this.media.hasAttribute('autoplay')) {
this.config.autoplay = true; this.config.autoplay = true;
} }
if (this.media.getAttribute('playsinline') !== null) { if (this.media.hasAttribute('playsinline')) {
this.config.inline = true; this.config.inline = true;
} }
if (this.media.getAttribute('muted') !== null) { if (this.media.hasAttribute('muted')) {
this.config.muted = true; this.config.muted = true;
} }
if (this.media.getAttribute('loop') !== null) { if (this.media.hasAttribute('loop')) {
this.config.loop.active = true; this.config.loop.active = true;
} }
break; break;
default: default: