
web前端
文章平均质量分 54
zhangge3663
这个作者很懒,什么都没留下…
展开
-
JS中[感叹号]function(){}()的理解
这种写法,是一种`立即执行函数`的写法,即IIFE等设计模式。这种函数在函数定义的地方就直接执行了。理解IIFE设计模式的关键是要认识到,在ES6之前,JavaScript仅具有函数作用域(因此缺少块作用域),并通过闭包内部的引用传递值。ES6之后情况已不再如此,因为JavaScript的ES6版本使用let和const关键字实现了块作用域。(function(){})()是匿名函数,主要利用函数内的变量作用域,避免产生全局变量,影响整体页面环境,增加代码的兼容性。(function(){})是转载 2021-11-28 08:36:12 · 1790 阅读 · 4 评论 -
js声明变量的三种方式
JS 声明变量的三种方式(1)使用变量步骤:a.声明-->b.赋值-->3.调用正确用法:<script type="text/javascript"> // 方式一:声明和赋值不分离 var correctUsage = "正确使用变量的方式一"; alert(correctUsage); //能够弹出来该变量所对应的值 // 方式二:声明和赋值分离 var correctUsage2; correctUsage2 = "正转载 2021-11-26 18:13:50 · 2252 阅读 · 0 评论 -
浅谈JavaScript、ES5、ES6
什么是JavaScriptJavaScript一种动态类型、弱类型、基于原型的客户端脚本语言,用来给HTML网页增加动态功能。(好吧,概念什么最讨厌了)动态:在运行时确定数据类型。变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型。弱类:计算时可以不同类型之间对使用者透明地隐式转换,即使类型不正确,也能通过隐式转换来得到正确的类型。原型:新对象继承对象(作为模版),将自身的属性共享给新对象,模版对象称为原型。这样新对象实例化后不但可以享有自己创建时和运行时定义的属性转载 2021-11-26 18:12:19 · 888 阅读 · 0 评论 -
ie8不兼容的一些方法兼容实现
if(!Object.create) { Object.create = function(o) { if (arguments.length > 1) { throw new Error('Object.create implementation only accepts the first parameter.'); } function F() {} F.prototype = o; .转载 2021-11-26 18:09:32 · 532 阅读 · 0 评论 -
解决IE10以下对象不支持“bind“属性或方法
IE10一下的浏览器,如果在JS代码中用了bind函数,那么就会报“SCRIPT438: 对象不支持“bind”属性或方法”因为浏览器没有提供这个参数的方法,所以我们就自己写一个bind,来让这个参数生效。//解决IE10以下不支持Function.bindif (!Function.prototype.bind) { Function.prototype.bind = function(oThis) { if (typeof this !== "function") {转载 2021-11-26 17:12:17 · 1612 阅读 · 0 评论 -
关于cookie domain中的点前缀
今天同事遇到一个问题,大概描述如下:浏览器已经接收指令,之前在一级域名下存储了相关的信息。这里为了简化问题,假设我们有两个应用A和B,域名分别为:a.b.com和c.a.b.com。(显然B是A的一个子域)。上面的描述就是:在.b.com这个一级域名下,我们已经成功写入了一个cookie,假设为:b=level1。在正常用户的浏览行为中,应用A会向自己的域下写入a=level2(domain:a.b.com)。在A正常的页面中,有些场景会有异步的请求发出到B应用的页面(用于获取数据),合理的转载 2021-11-10 12:26:50 · 2338 阅读 · 0 评论 -
正确使用cookie中的domain
domain的含义为域假设有两个域名a.b.e.f.com.cn 以下用域名1指代此域名c.d.e.f.com.cn 以下用域名2指代此域名在域名中,所有域名进行分级,也就是说域名1与域名2都是f.com.cn的子域名,f.com.cn又是com.cn的子域名在域名1所使用的服务中,可以设置域名a.b.e.f.com.cnb.e.f.com.cne.f.com.cnf.com.cn在服务端设置domain的时候,设置domain为b.e.f.com.cn或.b...转载 2021-11-10 12:02:30 · 4334 阅读 · 0 评论 -
js委托事件-addEventListeners(冒泡方向)
JQuery中live()、delegate()、on()事件都能给新增元素绑定事件,原理就是用了事件委托。示例:给id为div的元素绑定一个click委托,如果冒泡上来的元素是P元素就会执行alert("xxx");<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head>转载 2021-10-11 15:26:20 · 467 阅读 · 0 评论 -
开源API网关Kong基本介绍和安装验证
本文将介绍开源API网关Kong。在GitHub搜索API网关类的开源产品,可以看到Kong网关常年都是排第一的位置,而且当前很多都有一定研发能力的企业在API网关产品选项的时候基本也会选择Kong网关,并基于Kong网关进行二次开发和定制。API网关概述简单来说API网关就是将所有的微服务提供的API接口服务能力全部汇聚起来,统一接入进行管理,也正是通过统一拦截,就可以通过网关实现对API接口的安全,日志,限流熔断等共性需求。如果再简单说下,通过网关实现了几个关键能力。...转载 2021-01-07 11:50:16 · 1122 阅读 · 0 评论 -
base64随机字符混淆加密、解密-美拍视频地址解密(兼容ie、中文)
用火车头测试采集美拍的数据时无意中发现美拍的视频地址是一段加了混淆字符串的base64代码。如下图:于是好奇之下研究下解密算法。具体过程省略800字。发现美拍的视频解密是通过js完成,于是找到了具体的解密代码,如下:;function(a) { var b = "substring", c = "split", d = "replace", e = "substr", f = { getHex: function(a) {转载 2020-11-26 16:09:49 · 1370 阅读 · 0 评论 -
2019年末逆向复习系列之努比亚Cookie生成逆向分析
郑重声明:本项目的所有代码和相关文章, 仅用于经验技术交流分享,禁止将相关技术应用到不正当途径,因为滥用技术产生的风险与本人无关。这篇文章是《2019年末逆向复习系列》的第二篇:《努比亚Cookie生成逆向分析》本次案例的代码都已上传到Review_Reverse上面,后面会持续更新,大家可以Fork一波。逆向网址努比亚-牛仔俱乐部:https://bbs.nubia.cn/逆向背景努比亚俱乐部的逆向有意思在它的Cookie是动态生成的,是由Js生成Cookie的案例,并且这个网.转载 2020-11-18 10:45:20 · 398 阅读 · 0 评论 -
2019年末逆向复习系列之淘宝M站Sign参数逆向分析
郑重声明:本项目的所有代码和相关文章, 仅用于经验技术交流分享,禁止将相关技术应用到不正当途径,因为滥用技术产生的风险与本人无关。这篇文章是《2019年末逆向复习系列》的第一篇:《淘宝M站Sign参数逆向分析》本次案例的代码都已上传到Review_Reverse上面,后面会持续更新,大家可以Fork一波。逆向背景淘宝网的爬取大概是每一个爬虫工程师入行以来的终极目标之一了,如何自动化登录淘宝?如何模拟操纵淘宝网的滑块?相信这是很多爬虫群经久不息的话题了。我们这次的案例是逆向Web版的淘宝网.转载 2020-11-18 10:26:02 · 1365 阅读 · 0 评论 -
2019年末逆向复习系列之百度指数Data加密逆向破解
郑重声明:本项目的所有代码和相关文章, 仅用于经验技术交流分享,禁止将相关技术应用到不正当途径,因为滥用技术产生的风险与本人无关。这篇文章是公众号《云爬虫技术研究笔记》的《2019年末逆向复习系列》的第三篇:《百度指数Data加密逆向破解》本次案例的代码都已上传到Review_Reverse上面,后面会持续更新,大家可以Fork一波。逆向背景大家如果是做行业分析或者用户画像的话,会经常用到XX指数这个东西,类似于百度指数,微信指数,微博指数等等,这些指数用以反映不同关键词在过去一段时间里.转载 2020-11-18 10:05:06 · 755 阅读 · 0 评论 -
2019年末逆向复习系列之从猫眼字体反爬分析谈谈字体反爬的前世今生
郑重声明:本项目的所有代码和相关文章, 仅用于经验技术交流分享,禁止将相关技术应用到不正当途径,因为滥用技术产生的风险与本人无关。这篇文章是公众号《云爬虫技术研究笔记》的《2019年末逆向复习系列》的第六篇:《从猫眼字体反爬分析谈谈字体反爬的前世今生》本次案例的代码都已上传到Review_Reverse上面,后面会持续更新,大家可以Fork一波。背景分析“字体反爬”我相信大多数从事爬虫工作的工程师都接触过,这其实不是一种常规的反爬手段,它其实是页面和前端字体文件相配合完成的一个反爬..转载 2020-11-17 16:52:53 · 286 阅读 · 0 评论 -
CSS3 @font-face规则
实例指定名为"myFirstFont"的字体,并指定在哪里可以找到它的URL:@font-face{ font-family: myFirstFont; src: url('Sansation_Light.ttf'), url('Sansation_Light.eot'); /* IE9 */}尝试一下 »浏览器支持Internet Explorer 9, Firefox, Opera,Chrome, 和 Safari支持@font-face转载 2020-11-17 11:45:25 · 195 阅读 · 0 评论 -
PyAutoGUI——图形用户界面自动化
PyAutoGUI模块通过屏幕xy坐标系统确定目标位置,控制鼠标和键盘发送虚拟击键和鼠标点击,完成点击按钮、填写表单等操作,在没有模块对应你要操作的无聊任务的时候,也不失为一个不错的选择。PyAutoGUI的坐标轴系统pyautogui的鼠标函数使用x,y坐标,原点在屏幕左上角,向右x坐标增加,向下y坐标增加,所有坐标都是正整数,没有负数坐标。如图所示:pyautogui.size() #返回屏幕宽高像素数的元组 .转载 2020-09-14 15:52:48 · 391 阅读 · 0 评论 -
Python控制鼠标和键盘-PyAutoGUI用法详解
PyAutoGUI——让所有GUI都自动化安装命令:pip install pyautogui1.简介1.1 目的PyAutoGUI是一个纯Python的GUI自动化工具,其目的是可以用程序自动控制鼠标和键盘操作,多平台支持(Windows,OS X,Linux)。可以用pip安装,Github上有源代码。下面的代码让鼠标移到屏幕中央。import pyautoguiscreenWidth, screenHeight = pyautogui.size()pyautogu转载 2020-09-14 15:50:04 · 856 阅读 · 0 评论 -
仿12306铁路客服服务中心登录验证码效果
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" /> <title>铁路客服服务中心</title> <link rel="icon" type="image/x-icon" href="http://www.12306.cn/mormhweb/images/favicon.ico"> <style>..转载 2020-09-09 11:18:50 · 324 阅读 · 0 评论 -
监听localStorage变化(同页面监听)
“当同源页面的某个页面修改了localStorage,其余的同源页面只要注册了storage事件,就会触发”同页面监听,重写localStorage的方法,抛出自定义事件:<!doctype html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-.转载 2020-09-08 10:43:43 · 1055 阅读 · 0 评论 -
localStorage使用总结
WEB应用的快速发展,是的本地存储一些数据也成为一种重要的需求,实现的方案也有很多,最普通的就是cookie了,大家也经常都用,但是cookie的缺点是显而易见的,其他的方案比如:IE6以上的userData,Firefox下面的globalStorage,以及Flash的本地存储,除了Flash之外,其他的几个都有一些兼容性的问题。sessionStorage与localStorageWeb Storage实际上由两部分组成:sessionStorage与localStorage。sessio转载 2020-09-08 10:42:24 · 166 阅读 · 0 评论 -
JS键盘事件(非常详细)
在JavaScript中,当用户操作键盘时,会触发键盘事件,键盘事件主要包括下面3中类型:keydown: 在键盘上按下某个键时触发。如果按住某个键,会不断触发该事件,但是Opera浏览器不支持这种连续操作。该事件处理函数返回false时,会取消默认的动作(如输入的键盘字符,在IE和Safari浏览器下还会禁止keypress事件响应). keypress: 按下某个键盘键并释放时触发。如果按住某个键,会不断触发该事件。该事件处理函数返回false时,会取消默认的动作(如输入的键盘字符). keyu转载 2020-09-01 11:42:11 · 6009 阅读 · 0 评论 -
selenium之如何使用cssSelector定位页面元素
一、概述cssSelector也是一种常用的选择其,CSS locator比XPath locator速度快,用CSS Selector能非常精准的定位到想测试的Elements二、cssSelector常用符号说明# 表示id. 表示class> 表示子元素,层级一个空格也表示一个子元素,但是所有的子元素相当于xpath中的相对路径三、cssSelector的常用用法#input 选择id为input的节点.Volvo 选择class为Volvo的节点..转载 2020-09-01 10:00:00 · 726 阅读 · 0 评论 -
本地存储localStorage
我们可以通过全局属性localStorage访问本地存储功能,该属性返回一个Storage对象,Storage对象用来保存键/值形式的字符串对象Storage对象有如下属性和方法:Storage对象可以用来保存键/值对,之中键和值都必须是字符串键必须是唯一的,这意味着如果我们用Storage对象中的setItem方法设置相同的键名的键/值对,后面一个会覆盖掉前面一个,事实上就是后面一个更新了已经存在的键的值。localStorage案例1(localStorage.html):<转载 2020-09-01 08:38:59 · 394 阅读 · 0 评论 -
本地存储localStorage用法详解
一、什么是localStorage?在HTML5中,新加入了一个localStorage特性,这个特性主要是用来作为本地存储来使用的,解决了cookie存储空间不足的问题(cookie中每条cookie的存储空间为4k),localStorage中一般浏览器支持的是5M大小,这个在不同的浏览器中localStorage会有所不同。二、localStorage的优势与局限localStorage的优势1.localStorage拓展了cookie的4K限制;2.localStorage会转载 2020-09-01 07:51:03 · 1176 阅读 · 0 评论