JI-1192 Add support for additional query parameter
parent
fec8953ba8
commit
2c15047e50
39
js/h5p.js
39
js/h5p.js
|
@ -671,6 +671,35 @@ H5P.fullScreen = function ($element, instance, exitCallback, body, forceSemiFull
|
||||||
};
|
};
|
||||||
|
|
||||||
(function () {
|
(function () {
|
||||||
|
/**
|
||||||
|
* Helper for adding a query parameter to an existing path that may already
|
||||||
|
* contain one or a hash.
|
||||||
|
*
|
||||||
|
* @param {string} path
|
||||||
|
* @param {string} parameter
|
||||||
|
* @return {string}
|
||||||
|
*/
|
||||||
|
H5P.addQueryParameter = function (path, parameter) {
|
||||||
|
let newPath, secondSplit;
|
||||||
|
const firstSplit = path.split('?');
|
||||||
|
if (firstSplit[1]) {
|
||||||
|
// There is already an existing query
|
||||||
|
secondSplit = firstSplit[1].split('#');
|
||||||
|
newPath = firstSplit[0] + '?' + secondSplit[0] + '&';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// No existing query, just need to take care of the hash
|
||||||
|
secondSplit = firstSplit[0].split('#');
|
||||||
|
newPath = secondSplit[0] + '?';
|
||||||
|
}
|
||||||
|
newPath += parameter;
|
||||||
|
if (secondSplit[1]) {
|
||||||
|
// Add back the hash
|
||||||
|
newPath += '#' + secondSplit[1];
|
||||||
|
}
|
||||||
|
return newPath;
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Helper for setting the crossOrigin attribute + the complete correct source.
|
* Helper for setting the crossOrigin attribute + the complete correct source.
|
||||||
* Note: This will start loading the resource.
|
* Note: This will start loading the resource.
|
||||||
|
@ -680,16 +709,24 @@ H5P.fullScreen = function ($element, instance, exitCallback, body, forceSemiFull
|
||||||
* @param {number} contentId Needed to determine the complete correct file path
|
* @param {number} contentId Needed to determine the complete correct file path
|
||||||
*/
|
*/
|
||||||
H5P.setSource = function (element, source, contentId) {
|
H5P.setSource = function (element, source, contentId) {
|
||||||
|
let path = source.path;
|
||||||
|
|
||||||
const crossOrigin = H5P.getCrossOrigin(source);
|
const crossOrigin = H5P.getCrossOrigin(source);
|
||||||
if (crossOrigin) {
|
if (crossOrigin) {
|
||||||
element.crossOrigin = crossOrigin;
|
element.crossOrigin = crossOrigin;
|
||||||
|
|
||||||
|
if (H5PIntegration.crossoriginCacheBuster) {
|
||||||
|
// Some sites may want to add a cache buster in case the same resource
|
||||||
|
// is used elsewhere without the crossOrigin attribute
|
||||||
|
path = H5P.addQueryParameter(path, H5PIntegration.crossoriginCacheBuster);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// In case this element has been used before.
|
// In case this element has been used before.
|
||||||
element.removeAttribute('crossorigin');
|
element.removeAttribute('crossorigin');
|
||||||
}
|
}
|
||||||
|
|
||||||
element.src = H5P.getPath(source.path, contentId);
|
element.src = H5P.getPath(path, contentId);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue