JS
JS感想
quietness_1
帅就一个字,我再说一次
展开
-
后端直接返回二进制图片、前端src显示
1、解析一个项目,a标签的src文件地址,你如果直接去request,会发现返回的是一个二进制文件�PNG =>例如这样的百度了文章全是巴拉巴拉的,直接解决:ajax增加属性: xhrFields: { responseType: “arraybuffer” }, var binary = ""; var bytes = new Uint8Array(result); var len = bytes.byteLength; for (原创 2022-04-05 20:54:18 · 6341 阅读 · 0 评论 -
根据数组中的对象某个字段排序
来源:https://www.cnblogs.com/taohuaya/p/10049341.htmllet data = [ {chinese: '蔡司', english: 'Chase'}, {chinese: '艾伦', english: 'Allen'}, {chinese: '左拉', english: 'Zola'}, {chinese: '贝克', english: 'Baker'}, {chi原创 2022-01-03 16:52:00 · 356 阅读 · 0 评论 -
文件流转url地址
文件流你拿到了,其实就属于你了,它会有一个临时地址的但公众号中好像有特殊要求,注意兼容就对了,可以找我wx:zkhh666if (window.createObjectURL !== undefined){ url = window.createObjectURL(data) }else if(window.webkitURL !== undefined){ url = window.webkitURL.createObjectURL(data) }else if (windo原创 2021-10-23 16:20:10 · 1165 阅读 · 0 评论 -
触发iframe的方法
index.html中: function fn(name,value) { console.log(111111) }vue中:<iframe ref="iframe" :src="url" ></iframe>this.$refs.iframe.contentWindow.fn(1111)//我猜的,iframe也是一个对象,原创 2021-10-23 15:05:49 · 531 阅读 · 0 评论 -
utils,原生js做history监听
拿url的指定参数function getQueryVariable(variable){ console.log('jinlaile',) var query = window.location.search.substring(1);//?后面的所有参数 var vars = query.split("&");//用&分割成数组 for (var i=0;i<vars.length;i++) {//遍历数组原创 2020-11-02 15:51:32 · 709 阅读 · 0 评论 -
localStorage、sessionstorage的存储,读取,删除
localStorage存储我们通过以下方式将数据储存到localStorage中window.localStorage.setItem('key',value)sessionStorage.setItem('a','111');sessionStorage['a'] ='111';但有时value为一个对象Object,以上面的方式写入,会出现读取的返回值为{object Object}的情况,但这并不是我们想要的,此时我们需要使用新的方式传入Objectwindow.localSto原创 2021-03-30 09:13:54 · 445 阅读 · 0 评论 -
js判断PC端或是移动端、判断是不是微信浏览器、js代码判断浏览器种类IE、FF、Opera、Safari、chrome及版本
第一种window.location.href = /Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent) ? "https://www.baidu.com/" : "http://news.baidu.com/";等同于if(/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)) { window.location.href = "h原创 2021-03-25 16:08:15 · 301 阅读 · 0 评论 -
input上传文件[type=file]如何屏蔽“未选择任何文件”
其实就是把这个input隐藏起来,然后用按钮来代替它就可以<button onclick="chooseFile.click()">上传文件</button><input type="file" id="chooseFile" style="display:none;">原创 2021-03-25 16:03:23 · 2364 阅读 · 0 评论 -
监听localStorage中的数据变化
没有太好的办法,重写localstorage1、我们可以用window.dispatchEvent()这个方法来派发一个事件,让window去监听。新实例出来的这个事件会被绑定到window上来监听它的调用,当调用的时候可以拿到setItem的新值,直接赋值就可以具体实现2、先在src下新建utils文件夹,新建tools.js,它会抛出一个dispatchEventStroage方法3、 重写setItem事件,当使用setItem的时候,触发,window.dispatchEvent派发事件4原创 2021-02-20 14:50:11 · 3972 阅读 · 1 评论 -
前端页面,利用js开启一个websocket
WebSocket的目标是在一个单独的持久链接上提供全双工、双向通信。在JS建立webSocket之后,会有一个http发送到浏览器以发起链接,在取得服务器响应后,建立的连接会使用http升级从http协议交换为WebSocket协议,也就是说,使用标准的Http协议无法实现WebSockts,只有支持这种协议的专门服务器才能正常工作。WebSockets使用了自定义的协议,所以URL的模式也略有不同,未加密的连接不再是htttp://,而是ws://;加密的协议不是Https://而是wss://,在使原创 2020-11-30 09:23:47 · 2503 阅读 · 0 评论 -
在input框中加入img图片
其实标题是有错误的input和其他一类的是不能加入图片的,除非你用定位1、定位是一种2、contenteditable=“true”<p contenteditable="true">这是一个可编辑段落。</p>我找了些资料:https://blog.csdn.net/yifan_lion/article/details/79968367https://blog.csdn.net/bocongbo/article/details/84061110然后还有一些demo原创 2020-09-26 22:26:53 · 5766 阅读 · 0 评论 -
时间处理2020-8-19类型
//获取时间发下去// getTime(){// let timer = new Date()// let year = timer.getFullYear()// let month = timer.getMonth() +1// let day = timer.getDate()// month < 10 ? month = ‘0’ + month: month// day <10 ? day = ‘0’ + day : da原创 2020-08-19 15:38:36 · 246 阅读 · 0 评论 -
前端图片无法正常显示问题
检查方法:img标签的路径 =>打包后的图片位置 =>中文名 =>webpack 实在不行,多喝烫水1、路径不能是中文名2、看webpack(npm install --save-dev url-loader)module.exports = { module: { rules: [ { test: /\.(png|svg|jpg|gif|jpeg|ico|woff|woff2|eot|ttf|otf)$/, use:原创 2020-08-17 10:25:01 · 3206 阅读 · 0 评论 -
JSON.parse(JSON.string(arr))丢失对象问题
**当用JSON实现深拷贝JSON.parse(JSON.stringify(test))的时候,你会发现:**1、new Date(1536627600000)只是字符串的形式。而不是时间对象;2、new RegExp(’\w+’) || error序列化的结果将只得到空对象;3、obj里有函数序列化的结果会把函数或 undefined丢失4、NaN、Infinity和-Infinity序列化的结果会变成null5、对象是有构造函数生成的,会丢弃对象的constructor6、如原创 2020-07-31 09:50:47 · 2834 阅读 · 0 评论 -
JavaScript 实现复杂对象深拷贝(对象值包含函数)
原文地址飞机浅拷贝:只拷贝第一层深拷贝:比如Object.assign()、JSON对象的parse和stringify、JQ的extend,但是它们有一个共同的问题就是对简单对象可以实现深拷贝,但是对复杂对象就不行了,比如这样一个对象(属性值有函数、数组、复杂对象等)let arr = [ { proarr: [], profn:function(a,b){ return a+b } }]需要自己写一个函数function copyFn(obj) { if (obj原创 2020-07-30 09:29:19 · 1072 阅读 · 0 评论 -
JS判断是不是一个对象,删除对象属性
众所周知,我是嫖过来的,所以先上原文链接,因为以后不好找https://blog.csdn.net/zhangjing0320/article/details/81230170直接跳转var obj = {};1、toString(推荐)Object.prototype.toString.call(obj) === '[object Object]'2、constructorobj.constructor === Object3、instanceof 需要注意的是由于数组也是对象,因此用原创 2020-07-29 10:50:13 · 218 阅读 · 0 评论 -
原生js写一个loading
不好搬过来,又为了自己以后好找,为了seo,我就复制地址过来了》。。https://zhuanlan.zhihu.com/p/138893964专业链接原创 2020-07-23 09:11:08 · 959 阅读 · 0 评论 -
javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法
原文:添加链接描述关于js中的offsetWidth、clientWidth、scrollWidth等一系列属性及其方法一直都傻傻分不清,这里就来总结一下这些方法的用法和含义。注意: 下面元素属性和元素方法都通过 elem.属性 或 elem.方法 的方式使用,window属性通过 window.属性 的方式使用,document属性则通过document调用。主要是怕找不到:<script> /* ****** 元素视图属性 * offsetWidth 水转载 2020-07-21 08:55:38 · 115 阅读 · 0 评论 -
axios 设置请求头
现在到了重点的时刻了~~~axios 使用 post 发送数据时,默认是直接把 json 放到请求体中提交到后端的。也就是说,我们的 Content-Type 变成了 application/json;charset=utf-8 ,这是axios默认的请求头content-type类型。但是实际我们后端要求的 ‘Content-Type’: ‘application/x-www-form-urlencoded’ 为多见,这就与我们不符合。所以很多同学会在这里犯错误,导致请求数据获取不到。明明自己的请求地址原创 2020-06-02 14:54:51 · 9900 阅读 · 0 评论 -
js中的时间戳
1、转换成时间戳步骤1、(1)将日期字符串转换为Date类型的对象。 let d = new Date(‘2018-01-01’)2、let t = d.getTime(d) // 方法1let t = d.valueOf(d) // 方法2let t = d.parse(d) // 方法32、转成时间格式1、获取当前时间,并转换成时间戳:let timeStamp = new Date().getTime()2、转换就行了 ,后端给你时间戳就没再去获取了let d = new Dat原创 2020-05-28 16:58:18 · 1566 阅读 · 0 评论 -
Object.prototype.toString.call()
在JavaScript里使用typeof判断数据类型,只能区分基本类型,即:number、string、undefined、boolean、object。对于null、array、function、object来说,使用typeof都会统一返回object字符串。要想区分对象、数组、函数、单纯使用typeof是不行的。在JS中,可以通过Object.prototype.toString方法,判...原创 2020-04-14 15:24:01 · 332 阅读 · 0 评论 -
上帝之手———懒惰的正则
var reg = /abc/var reg = new Regexp(‘abc’)表示:当你用这个正则检测一个字符串的时候,字符串必须有‘abc’,如果有这样的符合规则,否则不符合,返回true或者false语法:正则表达式.test(你要检测的字符串)元字符:\d 至少一个数字\D 至少一个非数字\s 至少一个空格\S 至少一个非空格\w 至少...原创 2020-04-02 08:34:45 · 214 阅读 · 0 评论 -
转换、js等腰三角形、预解析、作用域、递归、练习题拿着玩
一、》转数字:Number、parseInt、parseFloat、- * / %=》转字符串:String 、变量.toString(8) =>八进制输出,默认10进制输出=》转boolean:boolean、(‘ ’,nan,number、null、underfind)二、画一个等腰三角形(document.write)三、(1)var a=b a=0 b=0;con...原创 2020-03-29 21:47:24 · 135 阅读 · 0 评论 -
第三方cookie(饼干)被禁止
在浏览器中主要通过js 操作document.cookie 来设置,我们都知道设置cookie的时候有一个选项是可选的,就是domain,这个参数不设置的时候有一个默认值就是当前网页的domain。而且Cookie默认是当前访问的页面设置与读取,所以当不同于当前domain的服务器想要使用页面中的cookie是读取不到的。如果读不到cookie,一般是因为浏览器限制第三方cookie的读取•解...原创 2020-03-26 09:32:08 · 491 阅读 · 0 评论 -
Fetch
Fetch原文地址https://www.cnblogs.com/lhyxq/p/9779076.html说明:Fetch相当于是一个新版本的Ajax,虽然现在我们常常使用的仍是ajax,但是fetch已经在渐渐地撼动ajax的地位(ie是不支持fetch的)先说一下fetch的优点吧:首先ajax最遭人诟病的就是回调地狱了,也就是比如说如果你要发送一个Ajax请求,但是请求的参数却...原创 2020-03-04 20:13:39 · 143 阅读 · 0 评论