js_util

1、js导出文件

		//vue下载file-saver
		import * as FileSaver from 'file-saver';
		FileSaver.saveAs(
          new Blob([JSON.stringify(exportComponent)], {
            type: 'text/plain;charset=utf-8',
          }),
          `${this.rightClickComponent.name + Date.now()}.json`
        );
		//js
		function saveJSON(data, filename){
	      if(!data) {
	        alert('保存的数据为空');
	        return;
	      }
	      if(!filename) 
	        filename = 'json.json'
	      if(typeof data === 'object'){
	        data = JSON.stringify(data, undefined, 4)
	      }
	      var blob = new Blob([data], {type: 'text/json'}),
	      e = document.createEvent('MouseEvents'),
	      a = document.createElement('a')
	      a.download = filename
	      a.href = window.URL.createObjectURL(blob)
	      a.dataset.downloadurl = ['text/json', a.download, a.href].join(':')
	      e.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null)
	      a.dispatchEvent(e)
	    }
	    saveJSON('1234',"obj.json")

2、js导入json文件

			<input type="file" @change="changeFile($event)">
			changeFile(e) {
			      let that = this;
			      var reader = new FileReader();//新建一个FileReader
			      reader.readAsText(e.target.files[0], "UTF-8");//读取文件 
			      reader.onload = async function(evt){ //读取完文件之后会回来这里
			            var fileString = evt.target.result; // 读取文件内容
			            let importCompont = JSON.parse(fileString)
			      }
			    },

3、全屏和退出全屏

全屏

const fullScreen = () => {
  const element = document.getElementsByClassName(className)[0];
  if (element.requestFullscreen) {
    element.requestFullscreen();
  }
};

退出全屏

const onFullScreenExit = () => {
  if (document.exitFullscreen) {
    document.exitFullscreen();
  }
};

监听变化

onMounted(async () => {
  window.onresize = () => {
    if (document.fullscreenElement) {
      isFullScreen.value = true;
    } else {
      isFullScreen.value = false;
    }
  };
});

4、复制图片到剪切板

let canvas = document.getElementsByTagName('canvas')[0];
canvas.toBlob(async (blob: any) => {
  const data = [
    new (window as any).ClipboardItem({
      [blob.type]: blob,
    }),
  ];
  await (navigator.clipboard as any).write(data).then(
    () => {
      menuDom.style.display = 'none';
      proxy.$message.success('复制成功!');
    },
    () => {
      proxy.$message.error('复制失败!');
    },
  );
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值