zoukankan      html  css  js  c++  java
  • Layui表格导出功能兼容IE

    找到layui目录下table.js    

    d.exportFile = function (e, t, i) {
        t = t || d.clearCacheKey(d.cache[e]), i = i || "csv";
        var a = c.config[e] || {}, l = {csv: "text/csv", xls: "application/vnd.ms-excel"}[i],
            n = document.createElement("a");
        return r.ie ? o.error("IE_NOT_SUPPORT_EXPORTS") : (n.href = "data:" + l + ";charset=utf-8,ufeff" + encodeURIComponent(function () {
          var i = [], a = [];
          return layui.each(t, function (t, l) {
            var n = [];
            "object" == typeof e ? (layui.each(e, function (e, a) {
              0 == t && i.push(a || "")
            }), layui.each(d.clearCacheKey(l), function (e, t) {
              n.push(t)
            })) : d.eachCols(e, function (e, a) {
              a.field && "normal" == a.type && !a.hide && (0 == t && i.push(a.title || ""), n.push(l[a.field]))
            }), a.push(n.join(","))
          }), i.join(",") + "
    " + a.join("
    ")
        }()), n.download = (a.title || "table_" + (a.index || "")) + "." + i, document.body.appendChild(n), n.click(), void document.body.removeChild(n))
      }

    替换为如下代码(区分ie,增加name传参自定义文件名字)

    d.exportFile = function (e, t, i, name) {
        t = t || d.clearCacheKey(d.cache[e]), i = i || "csv";
        var a = c.config[e] || {},  // 分页按钮
            l = {csv: "text/csv", xls: "application/vnd.ms-excel"}[i], // meta格式
            n = document.createElement("a"), // a 标签
            type = i,
            meta = l,
            title = a.title;
        if (r.ie) {
          var i = [], a = [];
          layui.each(t, function (t, l) {
            var n = [];
            "object" == typeof e ? (layui.each(e, function (e, a) {
              0 == t && i.push(a || "")
            }), layui.each(d.clearCacheKey(l), function (e, t) {
              n.push(t)
            })) : d.eachCols(e, function (e, a) {
              a.field && "normal" == a.type && !a.hide && (0 == t && i.push(a.title || ""), n.push(l[a.field]))
            }), a.push(n.join(","))
          });
          var data = i.join(",") + "
    " + a.join("
    ")
          navigator.msSaveBlob(new Blob(['ufeff' + data], {type: meta + ';charset=utf-8;'}), name+ '.' + type)
        } else {
          return n.href = "data:" + l + ";charset=utf-8,ufeff" + encodeURIComponent(function () {
            var i = [], a = [];
            return layui.each(t, function (t, l) {
              var n = [];
              "object" == typeof e ? (layui.each(e, function (e, a) {
                0 == t && i.push(a || "")
              }), layui.each(d.clearCacheKey(l), function (e, t) {
                n.push(t)
              })) : d.eachCols(e, function (e, a) {
                a.field && "normal" == a.type && !a.hide && (0 == t && i.push(a.title || ""), n.push(l[a.field]))
              }), a.push(n.join(","))
            }), i.join(",") + "
    " + a.join("
    ")
          }()), n.download = (name || a.title || "table_" + (a.index || "")) + "." + i, document.body.appendChild(n), n.click(), void document.body.removeChild(n)
        }}
    
  • 相关阅读:
    C#实现任意源组播与特定源组播
    张灵甫此人性格偏激,赌性重,喜欢冒险,做事不留后路,更适合担任中下层军官(要自己掌控着自己的命运)
    Delphi 中 断言 Assert 用法
    桌面程序阻止Windows关机(使用Message.Result取得DefWindowProc API函数的返回值,非常重要)
    Asp.net vnext的IIS部署
    Asp.net vNext 学习3
    EasyUI的后台界面
    C#框架
    前端分离规范
    AngularJS html5Mode与ASP.NET MVC路由
  • 原文地址:https://www.cnblogs.com/-swz/p/15477789.html
Copyright © 2011-2022 走看看