浏览代码

make download work in IE

dev_h
DanielHabenicht 3 年前
父节点
当前提交
c932c0f838
共有 1 个文件被更改,包括 15 次插入9 次删除
  1. 15
    9
      client-data/tools/download/download.js

+ 15
- 9
client-data/tools/download/download.js 查看文件

@@ -50,17 +50,23 @@
50 50
         ).join("\n")
51 51
 
52 52
         canvasCopy.appendChild(styleNode);
53
-        downloadContent('data:image/svg+xml;charset=utf-8,' + encodeURIComponent(canvasCopy.outerHTML), "svg")
53
+        downloadContent(new Blob([canvasCopy.outerHTML || new XMLSerializer().serializeToString(canvasCopy)], { type: 'image/svg+xml;charset=utf-8' }), Tools.boardName + ".svg")
54 54
     }
55 55
 
56
-    function downloadContent(href, type){
57
-        var element = document.createElement('a');
58
-        element.setAttribute('href', href);
59
-        element.setAttribute('download',  Tools.boardName + "." + type);
60
-        element.style.display = 'none';
61
-        document.body.appendChild(element);
62
-        element.click();
63
-        document.body.removeChild(element);
56
+    function downloadContent(blob, filename){
57
+        if (window.navigator.msSaveBlob) {
58
+            window.navigator.msSaveBlob(blob, filename);
59
+          } else {
60
+            const url = URL.createObjectURL(blob);
61
+            var element = document.createElement('a');
62
+            element.setAttribute('href', url);
63
+            element.setAttribute('download',  filename);
64
+            element.style.display = 'none';
65
+            document.body.appendChild(element);
66
+            element.click();
67
+            document.body.removeChild(element);
68
+            window.URL.revokeObjectURL(url);
69
+          }
64 70
     }
65 71
 
66 72
     Tools.add({ //The new tool

正在加载...
取消
保存