文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

六个有用的 JavaScript 代码片段

2024-11-30 13:46

关注

1.文件内容上传

var selectContent=document.getElementById("selectContent");
var contentForSelection=document.getElementById("contentForSelection");selectContent.onchange=function(e) {
  if (!window.FileReader) {
   alert("Your browser does not support HTML5 'FileReader' function required to open a file.");
  } else {
   let fileis = this.files[0];
   let fileredr = new FileReader();
   fileredr.onload = function (fle) {
    let filecont = fle.target.result;
    contentForSelection.value=filecont;
   };
   //fileredr.readAsArrayBuffer(fileis);
   fileredr.readAsText(fileis);
  }
};

在上面的示例中,由于我选择导入的文件是文本格式,因此使用方法 readAsText 而不是 readAsArrayBuffer。 

改为使用 readAsArrayBuffer 的实例包括读取图像流或读取 ZIP 存档文件。 

成功导入后,文件内容将自动呈现到元素 ID 为“contentForSelection”的文本区域中。

2.保存文件内容

var saveBtn=document.getElementById("saveBtn");
var cnotallow=document.getElementById("contentForSelection");
saveBtn.notallow=function() {
 let txtCnotallow=contentForSelection.value;
 if (!window.Blob) {
  alert("Your browser does not support HTML5 'Blob' function required to save a file.");
 } else {
  let textblob = new Blob([txtContent], {
   type: "text/plain"
  });
  let dwnlnk = document.createElement("a");
  dwnlnk.download = "output.txt";
  dwnlnk.innerHTML = "Download File";
  if (window.webkitURL != null) {
    dwnlnk.href = window.webkitURL.createObjectURL(textblob);
  }
  dwnlnk.click();
  }
};

上面的代码片段通常在在线笔记应用程序中实现,以便用户导出他们的输出。 或者,在诸如数据/代码格式化程序之类的 Web 实用程序中,通常也会提供 [Save] 功能,以允许用户将后续格式化的文本内容保存到本地存储文件中。

3.复制到剪贴板

复制到剪贴板是基于浏览器的设置中的另一个经典功能。 

通常情况下,如果转换后的输出仅用于一次性任务,则不需要将输出保存到文件中,使用以下 JS 代码片段会更合适:

var copyBtn=document.getElementById("copyBtn");
var cnotallow=document.getElementById("contentForSelection");
copyBtn.notallow=function(evt) {
 copyBtn.nextElementSibling.innerHTML="";
 copyTransformedOutput("contentForSelection");
 let smallEle=evt.currentTarget.nextElementSibling;
 smallEle.innerHTML=" Copied to Clipboard!";
};
function copyTransformedOutput(inputEleId) {
 let copyText = document.getElementById(inputEleId);
 copyText.select();
 copyText.setSelectionRange(0, 99999); 
 navigator.clipboard.writeText(copyText.value);
}

请注意,我选择在成功复制代码片段后显示一条消息“已复制到剪贴板”。

因此,转换后的输出随后可以粘贴到别处,而无需存储到本地文件中以供使用。

4.全部查找和替换

虽然在最新的 JavaScript 控制台中此功能目前是内置的,但由于其实现的独创性和简单性,了解以下 JavaScript 函数仍然是相关且有用的:

function replaceAll(inputStr,toReplace,replaceWith) {
  return inputStr.split(to
                        Replace).join(replaceWith);
}

例如,如果我想在文本区域中用“ID”替换“id”:

代码片段的其余部分是这样的:

var replaceBtn=document.getElementById("replaceBtn");
replaceBtn.notallow=function() {
 let toFind=document.getElementById("ToFind").value;
 let replaceWith=document.getElementById("ReplaceWith").value;
contentForSelection.value=replaceAll(contentForSelection.value,toFind,replaceWith);
};

5. 生成随机十六进制颜色

我发现这个 JavaScript 方法被低估的情况是当我不得不在同一个 Web 应用程序上渲染多条行车路线时:

显然微分无穷大。 不同颜色的重叠驾驶路线更容易让任何观众比较和对比显示在地图可视化上的各种路线。 因此,动态生成不同的颜色是必要的,并且可以通过以下方式实现:

function generateRandomHexColor() {
    let colorGenerated="#" + (Math.random() * 0xfffff * 1000000).toString(16).slice(0, 6);
    if(colorGenerated !== "#0000ff" && colorGenerated !== "#ff0000") {
      return colorGenerated;
    }
    colorGenerated="#" + (Math.random() * 0xfffff * 1000000).toString(16).slice(0, 6);
}

6. 突出显示 JSON 语法

对于地图服务提供商返回的每条路线,我都合并了路线 JSON 数据输出的导出功能。 

因此,为了区分JSON对象中的String、Float、Integer、Boolean等对象类型,我选择了颜色编码,如下所示:

以上效果可以通过 CSS 和 JavaScript 实现。

JavaScript 代码:

function syntaxHighlight(json) {
    json = json.replace(/&/g, "&").replace(//g, ">");
    return json.replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g, function (match) {
        var cls = "number";
        if (/^"/.test(match)) {
            if (/:$/.test(match)) {
                cls = "key";
            } else {
                cls = "string";
            }
        } else if (/true|false/.test(match)) {
            cls = "boolean";
        } else if (/null/.test(match)) {
            cls = "null";
        }
        return "" + match + "";
    });
}

CSS 代码:

.string { 
  color: green; 
}
.number { 
  color: darkorange; 
}
.boolean { 
  color: blue; 
}
.null { 
  color: magenta; 
}
.key { 
  color: red; 
}

今天这篇文章中的6 个 有用的JavaScript 代码片段就到此结束了,希望对你有用。

来源:web前端开发内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯