diff --git a/packages/node_modules/@node-red/editor-client/src/js/polyfills.js b/packages/node_modules/@node-red/editor-client/src/js/polyfills.js index 0e7206f7a..100cd4913 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/polyfills.js +++ b/packages/node_modules/@node-red/editor-client/src/js/polyfills.js @@ -52,6 +52,5 @@ Set.prototype = _Set.prototype; Set.prototype.constructor = Set; } - } })(); diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/clipboard.js b/packages/node_modules/@node-red/editor-client/src/js/ui/clipboard.js index 4ed618f6d..d39240938 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/clipboard.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/clipboard.js @@ -30,6 +30,27 @@ RED.clipboard = (function() { var pendingImportConfig; + + function downloadData(file, data) { + if (window.navigator.msSaveBlob) { + // IE11 workaround + // IE does not support data uri scheme for downloading data + var blob = new Blob([data], { + type: "data:text/plain;charset=utf-8" + }); + navigator.msSaveBlob(blob, file); + } + else { + var element = document.createElement('a'); + element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(data)); + element.setAttribute('download', file); + element.style.display = 'none'; + document.body.appendChild(element); + element.click(); + document.body.removeChild(element); + } + } + function setupDialogs() { dialog = $('
') .appendTo("#red-ui-editor") @@ -56,13 +77,8 @@ RED.clipboard = (function() { class: "primary", text: RED._("clipboard.download"), click: function() { - var element = document.createElement('a'); - element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent($("#red-ui-clipboard-dialog-export-text").val())); - element.setAttribute('download', "flows.json"); - element.style.display = 'none'; - document.body.appendChild(element); - element.click(); - document.body.removeChild(element); + var data = $("#red-ui-clipboard-dialog-export-text").val(); + downloadData("flows.json", data); $( this ).dialog( "close" ); } },