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

news2024/11/26 4:23:45

最近接到需求,需要纯前端, 操作写入改变文件,一时间头大不已,还好此需求只需要屏幕展示,无需顾及兼容问题,找来找去找到了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操作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/819444.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

安装nvm使用nvm管理node切换npm镜像后使用vue ui管理构建项目成功

如果安装nvm前已经单独安装过node.js的请先自行卸载原有node和环境变量里面的配置&#xff1b; 亲测成功&#xff0c;有哪些问题可以在评论区发消息或者私聊我 1、安装nvm的步骤如下 下载nvm安装包 在nvm的GitHub仓库&#xff0c;如下是国内镜像仓库&#xff1a; 点击这里跳…

心法利器[93] | 谈校招:技术面

心法利器 本栏目主要和大家一起讨论近期自己学习的心得和体会&#xff0c;与大家一起成长。具体介绍&#xff1a;仓颉专项&#xff1a;飞机大炮我都会&#xff0c;利器心法我还有。 2022年新一版的文章合集已经发布&#xff0c;累计已经60w字了&#xff0c;获取方式看这里&…

Open vSwitch(OVS虚拟交换机)

Open vSwitch&#xff08;OVS&#xff09; Open vSwitch&#xff08;OVS&#xff09;是一个开源的多层虚拟交换机&#xff0c;用于构建和管理软件定义网络&#xff08;Software-Defined Networking&#xff0c;SDN&#xff09;环境。它提供了一种灵活、可扩展的网络虚拟化解决…

单硬盘笔记本系统无损迁移(Ghost)方法

有一台笔记本启动使用UEFI方式&#xff0c;由于硬盘&#xff08;SSD&#xff09;发热问题想更换另一块SSD硬盘&#xff0c;但是由于笔记本就一个m.2接口&#xff0c;没有办法直接进行两块硬盘的系统迁移。 解决办法: 1、将老硬盘的系统通过Ghost软件克隆成一个gho文件&#x…

【MybBatis高级篇】MyBatis 拦截器

【MybBatis高级篇】MyBatis 拦截器 拦截器介绍实现拦截器注册拦截器应用ymlDynamicSqlDao 层代码xml启动类拦截器核心代码代码测试 拦截器应用场景 MyBatis 是一个流行的 Java 持久层框架&#xff0c;它提供了灵活的 SQL 映射和执行功能。有时候我们可能需要在运行时动态地修改…

如何解决 Scratch 中很难去除的bug?

大家好&#xff0c;今天我们就来讲讲我们在使用Scratch编程中遇到的一些典型的bug&#xff0c;相信也有你遇到的&#xff0c;我这里讲的名称稍微专业了一点&#xff0c;但是也希望你都能看完整篇文章&#xff0c;说不定就有你遇到的&#xff0c;给作者一个关注和赞吧&#xff0…

Vue如何做一个左边栏

要求一-------点击之后能够实现页面跳转,使用router&#xff0c;点击之后跳到指定页面&#xff1a; 第二步&#xff1a;如何实现简易的前端路由 第三步 左侧边栏的正确写法&#xff0c;ul中li套router-link 第四步 实现嵌套路由 第五步 ul中嵌套着li 第六步嵌套路由 第七步&…

elementUI 实现动态表单数据校验

转载http://t.csdn.cn/XuTa2 1、探讨需求 首先我们需要探讨一下需求&#xff1a; 表单中的部分el-form-item 的label都是从接口拿到的&#xff0c;需要遍历进行动态渲染。 需要给每个el-form-item加上校验至少是必填校验 有的el-form-item不需要校验&#xff0c;也不是从接口…

express学习笔记1 - 框架搭建

1、创建项目 mkdir admin-node cd admin-node npm init -y 安装依赖 npm i -S express 创建 app.js const express require(express)// 创建 express 应用 const app express()// 监听 / 路径的 get 请求 app.get(/, function(req, res) {res.send(hello node) })// 使 …

GoogleLeNet Inception V2 V3

文章目录 卷积核分解第一步分解&#xff0c;对称分解第二步分解&#xff0c;非对称分解在Inception中的改造一般模型的参数节省量可能导致的问题 针对两个辅助分类起的改造特征图尺寸缩减Model Regularization via Label Smoothing——LSR问题描述&#xff0c;也就是LSR解决什么…

问道管理:市盈率市净率市销率三者之间的关系?

市盈率、市净率和市销率是股票剖析中最常用的三种金融目标&#xff0c;它们是评价股票价值和价格是否合理的重要工具。那么&#xff0c;三者之间到底有什么联系呢&#xff1f;本文将从多个视点进行剖析。 1. 基本概念 市盈率 (PE Ratio) 是一个衡量公司的股价相对于其每股收益…

安卓音视频多对多级联转发渲染

最近利用自己以前学习和用到的音视频知识和工程技能做了一个android的sdk,实现了本地流媒体ipc rtsp 拉流以及自带mip usb等camera audio节点产生的流媒体通过webrtc sfu的方式进行多对多级联发布共享,网状结构&#xff0c;p2p组网&#xff0c;支持实时渲染以及转推rtmp&#x…

Java版工程行业管理系统源码-专业的工程管理软件- 工程项目各模块及其功能点清单

&#xfeff; 工程项目管理软件&#xff08;工程项目管理系统&#xff09;对建设工程项目管理组织建设、项目策划决策、规划设计、施工建设到竣工交付、总结评估、运维运营&#xff0c;全过程、全方位的对项目进行综合管理 工程项目各模块及其功能点清单 一、系统管理 1、数据…

【Android】APP启动优化学习笔记

启动优化目的 用户体验&#xff1a; 应用的启动速度直接影响用户体验。用户希望应用能够快速启动并迅速响应他们的操作。如果应用启动较慢&#xff0c;用户可能会感到不满&#xff0c;并且有可能选择卸载或切换到竞争对手的应用。通过启动优化&#xff0c;可以提高应用的启动…

Inobitec DICOM Viewer Pro 2.11.0 Crack

Inobitec DICOM Viewer Pro 2.11.0 专业DICOM查看器、匿名器、转换器、PACS客户端、迷你PACS服务器、患者CD/DVD刻录机(带查看器)等功能的医学影像专业必备的DICOM工作站和查看器 动态渐进版本&#xff08;每季度发布&#xff09;扩展功能 高级 3D 重建 以 OBJ、STL、PLY、…

uni-app:实现分页功能,单击行获取此行指定数据,更改行样式

效果&#xff1a; 分段解析代码 分页功能实现&#xff1a; 一、标签 1、搜索栏-模糊查询 <!-- 搜索框--><form action"" submit"search_wip_name"><view class"search_position"><view class"search"><…

【AGC】Publishing API调用问题汇总

【问题背景】 开发者可以通过Publishing API完成几乎所有应用的管理和发布工作&#xff0c;自己制定自动发布接口。Publishing API有很多接口&#xff0c;包括了查询应用信息、更新应用信息、上传文件、提交发布等主要接口。下面总结了一些开发者在使用Publishing API过程中容…

构建高效物理计划:从逻辑查询到算子实现

​一、前言 本文主要介绍内容一条查询语句如何实现由逻辑计划生成物理计划。查询语句要执行的操作、涉及的表信息等存放于逻辑计划的 PlanNode 中&#xff0c;物理计划的构建就是通过解析逻辑计划的 PlanNode&#xff0c;将对应的 PlanNode 转换为对应算子&#xff08;Process…

springboot整合tio-websocket方案实现简易聊天

写在最前&#xff1a; 常用的http协议是无状态的&#xff0c;且不能主动响应到客户端。最初想实现状态动态跟踪只能用轮询或者其他效率低下的方式&#xff0c;所以引入了websocket协议&#xff0c;允许服务端主动向客户端推送数据。在WebSocket API中&#xff0c;浏览器和服务…

富士通“Actlyzer”提供基于AI的基于视频的行为分析

想象一下这样的场景&#xff1a;一个男人走近一个家的前门&#xff0c;蹲下并检查钥匙孔。这是丢失房屋钥匙的居民还是客人&#xff1f;还是寻找入口点的窃贼&#xff1f;“Actlyzer”是一种新的人工智能安全系统&#xff0c;旨在区分这种情况。富士通实验室和研发中心的行为分…