From 52e39e792fe0b823cdadd2c4698fd7fd969bab10 Mon Sep 17 00:00:00 2001 From: Richmond Macaspac Date: Thu, 12 Mar 2020 02:50:18 -0500 Subject: [PATCH] Clipboard API fallback for when browser doesn't support navigator.clipboard --- src/components/itemcontextmenu.js | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/components/itemcontextmenu.js b/src/components/itemcontextmenu.js index 62048345ea..ad180b2c0a 100644 --- a/src/components/itemcontextmenu.js +++ b/src/components/itemcontextmenu.js @@ -346,11 +346,7 @@ define(["apphost", "globalize", "connectionManager", "itemHelper", "appRouter", break; case "copy-stream": var downloadHref = apiClient.getItemDownloadUrl(itemId); - navigator.clipboard.writeText(downloadHref).then(function () { - require(["toast"], function (toast) { - toast(globalize.translate("CopyStreamURLSuccess")); - }); - }, function () { + var textareaCopy = function () { var textArea = document.createElement("textarea"); textArea.value = downloadHref; document.body.appendChild(textArea); @@ -364,7 +360,16 @@ define(["apphost", "globalize", "connectionManager", "itemHelper", "appRouter", prompt(globalize.translate("CopyStreamURL"), downloadHref); } document.body.removeChild(textArea); - }); + }; + if (navigator.clipboard === undefined) { + textareaCopy(); + } else { + navigator.clipboard.writeText(downloadHref).then(function () { + require(["toast"], function (toast) { + toast(globalize.translate("CopyStreamURLSuccess")); + }); + }, textareaCopy); + } getResolveFunction(resolve, id)(); break; case "editsubtitles":