MCPcopy Create free account
hub / github.com/ChinaGodMan/UserScripts / importFileJSON

Method importFileJSON

highlight-keywords/highlight-keywords.user.js:980–1019  ·  view source on GitHub ↗
(ev)

Source from the content-addressed store, hash-verified

978
979 // 解析配置
980 importFileJSON(ev) {
981 return new Promise((resolve, reject) => {
982 const fileDom = ev.target,
983 file = fileDom.files[0]
984
985 // 格式判断
986 if (file.type !== 'application/json') {
987 reject('仅允许上传json文件')
988 }
989 // 检验是否支持FileRender
990 if (typeof FileReader === 'undefined') {
991 reject('当前浏览器不支持FileReader')
992 }
993
994 // 执行后清空input的值,防止下次选择同一个文件不会触发onchange事件
995 ev.target.value = ''
996
997 // 执行读取json数据操作
998 const reader = new FileReader()
999 reader.readAsText(file) // 读取的结果还有其他读取方式,我认为text最为方便
1000
1001 reader.onerror = (err) => {
1002 reject('json文件解析失败', err)
1003 }
1004
1005 reader.onload = () => {
1006 const resultData = reader.result
1007 if (resultData) {
1008 try {
1009 const importData = JSON.parse(resultData)
1010 resolve(importData)
1011 } catch (error) {
1012 reject('读取数据解析失败', error)
1013 }
1014 } else {
1015 reject('读取数据解析失败', error)
1016 }
1017 }
1018 })
1019 },
1020
1021 // 保存配置到本地
1022 file_read(e) {

Callers 1

file_readMethod · 0.95

Calls

no outgoing calls

Tested by

no test coverage detected