vue实现按钮下载功能

核心提示onDownload() { this.$http .get( "your-url", { responseType: "blo

onDownload() {

      this.$http

        .get(

          "your-url",

          {

            responseType: "blob" ,//重要

          }

        )

        .then(response => {

          if (response.message) {

            this.$message.error(response.message);

            return;

          }

          let blob = new Blob([response.data], { type: "application/zip" });

          let link = document.createElement("a");

          let url = window.URL.createObjectURL(blob)

          link.href = url;

          link.download = this.projectName;

          link.click();

          URL.revokeObjectURL(url); //释放内存

        })

        .catch((e) => {

          this.$message.error(this.$store.getters.$lang.messages.errorLoad+":"+e);

        });

    }

这段代码可以搞定,不过只能在IE浏览器下。

<!DOCTYPE html>

<html>

<head>

<title>New document</title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

</head>

<body>

<form id="form">

<table id = "PrintA" width="100%" border="1" cellspacing="0" cellpadding="0" >

<tr >

<td>单元格1</td>

<td>单元格2</td>

<td>单元格3</td>

<td>单元格4</td>

</tr>

<tr>

<td colSpan=4 ><font color="red" face="Verdana">单元格合并</FONT></td>

</tr>

</table>

<BR>

<table id = "Test" width="100%">

<tr>

<td><font color="red">test</FONT></td>

</tr>

</table>

</form>

<input type="button" onclick="javascript:MakeWord();" value="导出页面到Word">

<script type="text/javascript">

function MakeWord()

{

var word = new ActiveXObject("Word.Application");

// var doc = word .documents.open("c:test.doc"); //此处为打开已有的模版

var doc = word .documents.Add("",0,1);//不打开模版直接加入内容

var Range=doc.Range();

var sel = document.body.createTextrange();

sel.moveToElementText(form);//此处form是页面form的id

sel.select();

sel.execCommand("Copy");

Range.Paste();

word .Application.Visible = true;

doc .saveAs("c:ba.doc"); //存放到指定的位置注意路径一定要是“”不然会报错

}

</script>

</body></html>

<script type="text/javascript">

function word()

{

word=new ActiveXObject('word.application');

word.Application.Visible=trUE;

var doc=word.documents.Add('',0,1);

range=doc.range(0,1);

var sel=Layer1.document.body.createTextrange();

Layer1.document.execCommand('Copy');

sel.moveEnd('character');

range.Paste();

location.reload();

word.ActiveWindow.ActivePane.view.Type=3; //默认为页面视图

}

</script>

<div id="Layer1"><input type="button" name="button" value="生成word" onclick="word();"></div>

 
友情链接
鄂ICP备19019357号-22