пользуюсь msSaveBlob
работает в IE,FF,CHROME,OPERA
в SAFARI не идёт
кто то имеет представление как это победить?
интерисует имено такой формат данных
downloadFile('fileName.xls', '<table><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>11</td><td>22</td><td>33</td></tr><tr><td>111</td><td>222</td><td>333</td></tr></table>')
пример
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
<html>
<head>
<script>
function isIEBelow10() {
var myNav = navigator.userAgent.toLowerCase();
return (myNav.indexOf('msie') != -1) ? parseInt(myNav.split('msie')[1]) < 10 : false;
}
function downloadFile(fileName, csvContent) {
var D = document;
var a = D.createElement('a');
var strMimeType ='application/vnd.ms-excel;charset=UTF-8' // 'application/octet-stream;charset=utf-8';
var rawFile;
if (!fileName) {
var currentDate = new Date();
fileName = "xls - " + currentDate.getFullYear() + (currentDate.getMonth() + 1) +
currentDate.getDate() + currentDate.getHours() +
currentDate.getMinutes() + currentDate.getSeconds() + ".xls";
}
if (isIEBelow10()) {
var frame = D.createElement('iframe');
document.body.appendChild(frame);
frame.contentWindow.document.open("text/html", "replace");
frame.contentWindow.document.write('sep=,\r\n' + csvContent);
frame.contentWindow.document.close();
frame.contentWindow.focus();
frame.contentWindow.document.execCommand('SaveAs', true, fileName);
document.body.removeChild(frame);
return true;
}
// IE10+
if (navigator.msSaveBlob) {
return navigator.msSaveBlob(new Blob(["", csvContent], {
type: strMimeType
}), fileName);
}
//html5 A[download]
if ('download' in a) {
var blob = new Blob([csvContent], {
type: strMimeType
});
rawFile = URL.createObjectURL(blob);
a.setAttribute('download', fileName);
} else {
rawFile = 'data:' + strMimeType + ',' + encodeURIComponent(csvContent);
a.setAttribute('target', '_blank');
a.setAttribute('download', fileName);
}
a.href = rawFile;
a.setAttribute('style', 'display:none;');
D.body.appendChild(a);
setTimeout(function() {
if (a.click) {
a.click();
// Workaround for Safari 5
} else if (document.createEvent) {
var eventObj = document.createEvent('MouseEvents');
eventObj.initEvent('click', true, true);
a.dispatchEvent(eventObj);
}
D.body.removeChild(a);
}, 100);
}
</script>
</head>
<body>
<script>
downloadFile('fileName.xls', '<table><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>11</td><td>22</td><td>33</td></tr><tr><td>111</td><td>222</td><td>333</td></tr></table>')
</script>
</body>
</html>