diff --git a/src/apps/legacy/controllers/itemDetails/index.js b/src/apps/legacy/controllers/itemDetails/index.js index ee58d24f71..89ca5d7f01 100755 --- a/src/apps/legacy/controllers/itemDetails/index.js +++ b/src/apps/legacy/controllers/itemDetails/index.js @@ -256,7 +256,7 @@ function renderVideoSelections(page, mediaSources) { titleParts.push(v.Codec.toUpperCase()); } - return ''; + return ``; }).join(''); select.setAttribute('disabled', 'disabled'); @@ -279,7 +279,7 @@ function renderAudioSelections(page, mediaSources) { const selectedId = mediaSource.DefaultAudioStreamIndex; select.innerHTML = tracks.map(function (v) { const selected = v.Index === selectedId ? ' selected' : ''; - return ''; + return ``; }).join(''); if (tracks.length > 1) { @@ -309,7 +309,7 @@ function renderSubtitleSelections(page, mediaSources) { let selected = selectedId === -1 ? ' selected' : ''; select.innerHTML = '' + tracks.map(function (v) { selected = v.Index === selectedId ? ' selected' : ''; - return ''; + return ``; }).join(''); if (tracks.length > 0) { @@ -729,12 +729,22 @@ function renderLinks(page, item) { const links = []; if (!layoutManager.tv && item.HomePageUrl) { - links.push(`${globalize.translate('ButtonWebsite')}`); + try { + const parsedUrl = new URL(item.HomePageUrl); + links.push(`${globalize.translate('ButtonWebsite')}`); + } catch { + console.error('[renderLinks] Failed to parse home page URL', item.HomePageUrl); + } } if (item.ExternalUrls) { for (const url of item.ExternalUrls) { - links.push(`${escapeHtml(url.Name)}`); + try { + const parsedUrl = new URL(url.Url); + links.push(`${escapeHtml(url.Name)}`); + } catch { + console.error('[renderLinks] Failed to parse external URL', url.Url); + } } }