(function () {
|
|
//var oldData;
|
|
var html = '';
|
|
html += '<button class="diy input">',
|
|
html += '导入<input type="file" id="fileInput" accept=".km,.txt,.md,.json" >',
|
|
html += '</button>',
|
|
/*html += '<a class="diy output" href="">导出</a>'
|
|
html += '<ul><li><a href="#" class="diy export" data-type="json">导出json</a></li>',
|
|
html += '<li><a href="#" class="diy export" data-type="md">导出md</a></li>',
|
|
html += '<li><a href="#" class="diy export" data-type="km">导出km</a></li>',
|
|
html += '<li><a href="#" class="diy export" data-type="svg">导出svg</a></li>',
|
|
html += '<li><a href="#" class="diy export" data-type="txt">导出text</a></li>',
|
|
html += '<li><a href="#" class="diy export" data-type="png">导出png</a></li></ul>';*/
|
|
//html += '<a href="#" class="diy export" data-type="json">导出json</a>',
|
|
html += '<a href="#" class="diy export" data-type="km">导出km</a>',
|
|
//html += '<a href="#" class="diy export" data-type="svg">导出svg</a>',
|
|
html += '<a href="#" class="diy export" data-type="txt">导出txt</a>',
|
|
html += '<a href="#" class="diy export" data-type="md">导出md</a>',
|
|
html += '<a href="#" class="diy export" data-type="png">导出png</a>';
|
|
|
|
$('.editor-title').append(html);
|
|
|
|
$('.diy').css({
|
|
// 'height': '30px',
|
|
// 'line-height': '30px',
|
|
'margin-top': '0px',
|
|
'margin-left': '0px',
|
|
'float': 'left',
|
|
'background-color': '#393f4f',
|
|
'min-width': '60px',
|
|
'text-decoration': 'none',
|
|
color: '#fff',
|
|
'padding': '0 10px',
|
|
border: 'none',
|
|
//'border-left': '1px solid #ccc',
|
|
'border-right': '1px solid #ccc',
|
|
});
|
|
$('.input').css({
|
|
'overflow': 'hidden',
|
|
'position': 'relative',
|
|
}).find('input').css({
|
|
cursor: 'pointer',
|
|
position: 'absolute',
|
|
top: 0,
|
|
bottom: 0,
|
|
left: 0,
|
|
right: 0,
|
|
display: 'inline-block',
|
|
opacity: 0
|
|
});
|
|
|
|
$(document).on('click', '.export', function (event) {
|
|
event.preventDefault();
|
|
var $this = $(this),
|
|
type = $this.data('type'),
|
|
exportType;
|
|
switch (type) {
|
|
case 'km':
|
|
exportType = 'json';
|
|
break;
|
|
case 'md':
|
|
exportType = 'markdown';
|
|
break;
|
|
case 'svg':
|
|
exportType = 'svg';
|
|
break;
|
|
case 'txt':
|
|
exportType = 'text';
|
|
break;
|
|
case 'png':
|
|
exportType = 'png';
|
|
break;
|
|
default:
|
|
exportType = type;
|
|
break;
|
|
}
|
|
|
|
editor.minder.exportData(exportType).then(function (content) {
|
|
switch (exportType) {
|
|
case 'json':
|
|
console.log($.parseJSON(content));
|
|
break;
|
|
default:
|
|
console.log(content);
|
|
break;
|
|
}
|
|
var blob = new Blob();
|
|
switch (exportType) {
|
|
case 'png':
|
|
blob = dataURLtoBlob(content); //将base64编码转换为blob对象
|
|
break;
|
|
default:
|
|
blob = new Blob([content]);
|
|
break;
|
|
}
|
|
var a = document.createElement("a"); //建立标签,模拟点击下载
|
|
a.download = $('#node_text1').text() + '.' + type;
|
|
a.href = URL.createObjectURL(blob);
|
|
a.click();
|
|
|
|
});
|
|
});
|
|
|
|
// 导入
|
|
window.onload = function () {
|
|
var fileInput = document.getElementById('fileInput');
|
|
|
|
fileInput.addEventListener('change', function (e) {
|
|
var file = fileInput.files[0],
|
|
// textType = /(md|km)/,
|
|
fileType = file.name.substr(file.name.lastIndexOf('.') + 1);
|
|
console.log(file);
|
|
switch (fileType) {
|
|
case 'md':
|
|
fileType = 'markdown';
|
|
break;
|
|
case 'txt':
|
|
fileType = 'text';
|
|
break;
|
|
case 'km':
|
|
case 'json':
|
|
fileType = 'json';
|
|
break;
|
|
default:
|
|
console.log("File not supported!");
|
|
alert('只支持.km、.md、、text、.json文件');
|
|
return;
|
|
}
|
|
var reader = new FileReader();
|
|
reader.onload = function (e) {
|
|
var content = reader.result;
|
|
editor.minder.importData(fileType, content).then(function (data) {
|
|
console.log(data)
|
|
$(fileInput).val('');
|
|
});
|
|
}
|
|
reader.readAsText(file);
|
|
});
|
|
}
|
|
|
|
})();
|
|
|
|
//base64转换为图片blob
|
|
function dataURLtoBlob(dataurl) {
|
|
var arr = dataurl.split(',');
|
|
//注意base64的最后面中括号和引号是不转译的
|
|
var _arr = arr[1].substring(0, arr[1].length - 2);
|
|
var mime = arr[0].match(/:(.*?);/)[1],
|
|
bstr = atob(_arr),
|
|
n = bstr.length,
|
|
u8arr = new Uint8Array(n);
|
|
while (n--) {
|
|
u8arr[n] = bstr.charCodeAt(n);
|
|
}
|
|
return new Blob([u8arr], {
|
|
type: mime
|
|
});
|
|
}
|