JavaScript创建,写入,复制,读取文件 只限IE ActiveX控件

最近接到需求,需要纯前端, 操作写入改变文件,一时间头大不已,还好此需求只需要屏幕展示,无需顾及兼容问题,找来找去找到了new ActiveXObject("Scripting.FileSystemObject") 强大控件

以下为自己记录的 一些要点,下次用到回看


image.png

大概就是这个结构啦
1,删除议题

  //delAll功能
  function delAll() {
    var num = window.confirm("确认删除议题吗?");
    // console.log(num,typeof num)
    if (num === false) {
      return false;
    }
    var olistTable = document.getElementById("listTable");
    var items = document.getElementsByName("item");
    for (var j = 0; j < items.length; j++) {
      if (items[j].checked) {
        //如果item被选中
        var oParentnode = items[j].parentNode.parentNode;
        olistTable.removeChild(oParentnode);
        j--;
      }
    }
    zhuremove();
  }

  function zhuremove() {
    var fso = new ActiveXObject("Scripting.FileSystemObject");
    var tf = fso.CreateTextFile(
      "D:\\tttt\\zhy\\tableModify-master\\js\\delegacy.js",
      true,
      true
    );
    // 写一行,并且带有新行字符。
    tf.WriteLine("var delelist = [];");
    $("#listTable tr").each(function(i, v) {
      tf.WriteLine(
        "delelist.push({gacy:'" +
          $(v)
            .find("td:nth-child(3)")
            .text() +
          "',names:'" +
          $(v)
            .find("td:nth-child(4)")
            .text() +
          "'});"
      );
    });
    tf.Close();
  }

2,预览议题
就是更改相同的js文件 然后双方引入 操作平台写入后,预览页面更新


image.png

上面是存放数据的,下面是预览页

3,保存议题

//writeFile功能
  function writeFileAll() {
    alert("文件开始写入");
    var fso, tf;
    fso = new ActiveXObject("Scripting.FileSystemObject");
    // var utf8Enc = new ActiveXObject("Utf8Lib.Utf8Enc");
    tf = fso.CreateTextFile(
      "D:\\tttt\\zhy\\tableModify-master\\js\\delegacy.js",
      true,
      true
    );
    // tf.BinaryWrite(utf8Enc.UnicodeToUtf8(fso));
    // 写一行,并且带有新行字符。
    tf.WriteLine("var delelist = [];");
    for (var i = 0; i < delelist.length; i++) {
      tf.WriteLine(
        "delelist.push({gacy:'" +
          delelist[i].gacy +
          "',names:'" +
          delelist[i].names +
          "'});"
      );
    }
    tf.Close();
    alert("文件写入完成");
    window.location.reload();
  }

这里有一点要重点说明一下,createtextfile有四个参数,最后一个true是来控制编码的,采坑了 找了很久才改好,一般js很少用到这些,实在vb论坛 asp啥的 偶然看到的

4,发布议题

function publicAll() {
    alert("准备更新屏幕议题");
    var fso, f2;
    fso = new ActiveXObject("Scripting.FileSystemObject");
    f2 = fso.GetFile("D:\\tttt\\zhy\\tableModify-master\\js\\delegacy.js");
    f2.Copy("D:\\tttt\\zhengscroll\\delegacy.js");
    alert("屏幕议题更新完成");
  }

这个很简单,直接copy过去就行 注意路径

5,点击查看屏幕议题 就是个跳转 没啥说的

image.png

这些呢,都是小方法
除了更新需要FSO以外,其他俩个都是dom操作 没啥说的

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • VBS文件操作'操作文本文件,操作fso对象(文件对象操作) --------------------------...
    中華田園雞阅读 1,991评论 0 0
  • Javascript是网页制作中离不开的脚本语言,依靠它,一个网页的内容才生动活泼、富有朝气。但也许你还没有发现并...
    萤火虫de梦阅读 9,915评论 0 3
  • '操作文本文件,操作fso对象(文件对象操作) ---------------------------------...
    中華田園雞阅读 450评论 0 1
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,353评论 2 89
  • 古人的话: “圣人无死地,智者无困厄。” “凡事豫立而不劳。” “凡事都从忙里错,谁人知向静中修!”
    初小湄阅读 498评论 0 0

友情链接更多精彩内容