Repository: openmeetings Updated Branches: refs/heads/master 0a29d8e00 -> 8ab7b62dc
[OPENMEETINGS-1784] download as image is fixed in IE Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/8ab7b62d Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/8ab7b62d Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/8ab7b62d Branch: refs/heads/master Commit: 8ab7b62dc32be8b2522890aecdc96e1f05c1964c Parents: 0a29d8e Author: Maxim Solodovnik <[email protected]> Authored: Tue Dec 12 18:12:10 2017 +0700 Committer: Maxim Solodovnik <[email protected]> Committed: Tue Dec 12 18:12:50 2017 +0700 ---------------------------------------------------------------------- .../apache/openmeetings/web/room/wb/wb-area.js | 23 +++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/openmeetings/blob/8ab7b62d/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-area.js ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-area.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-area.js index 7dadc57..4539086 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-area.js +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-area.js @@ -302,11 +302,24 @@ var DrawWbArea = function() { })); } else { const cnv = wb.getCanvas() - , a = document.createElement('a'); - a.setAttribute('target', '_blank') - a.setAttribute('download', wb.name + '.' + fmt); - a.setAttribute('href', _getImage(cnv, fmt)); - a.dispatchEvent(new MouseEvent('click', {view: window, bubbles: false, cancelable: true})); + , dataUri = _getImage(cnv, fmt) + , fName = wb.name + '.' + fmt; + if (typeof window.navigator.msSaveOrOpenBlob !== 'undefined') { + const byteStr = atob(dataUri.split(',')[1]) + , mime = dataUri.split(',')[0].split(':')[1].split(';')[0] + , ab = new ArrayBuffer(byteStr.length) + , ia = new Uint8Array(ab); + for (let i = 0; i < byteStr.length; ++i) { + ia[i] = byteStr.charCodeAt(i); + } + window.navigator.msSaveOrOpenBlob(new Blob([ab], {type: mime}), fName); + } else { + const a = document.createElement('a'); + a.setAttribute('target', '_blank') + a.setAttribute('download', fName); + a.setAttribute('href', dataUri); + a.dispatchEvent(new MouseEvent('click', {view: window, bubbles: false, cancelable: true})); + } } } self.videoStatus = _videoStatus;
