js代码

破解网站简单 js 加密 (一)

房东的猫 提交于 2020-01-24 22:09:02
问题描述 准备工作 首先将浏览器设置为禁止 js 加载的模式: 我们再次去请求相关的网站的时候就看不到 js 动态加载之后内容了。 正向推理 对于 script 里面的代码,第一段是一个 eval 函数的调用。 第二行是一大段的代码,先将第一段的代码复制出来,在控制台将 eval 替换为 console.log 即可。 我们将运行的结果复制下来: var dynamicurl="/WZWSREL2dvdXRvbmdqaWFvbGl1LzExMzQ1Ni8xMTM0NjkvMTEwNDAvaW5kZXgxLmh0bWw="; var wzwsquestion="{H0Od9evT@es_"; var wzwsfactor="5967"; var wzwsmethod="WZWS_METHOD"; var wzwsparams="WZWS_PARAMS"; 看起来是在 js 中定义的几个变量。 我们对第二段代码做一个 js 的美化, 查找一下 js 美化的网站: 随便选择一个,将第二段代码复制进去: 将格式化后的代码保存在一个全新的 js 文件中: 先看其中的 var _0x56ae … ,定义了一个函数,不难发现,这个函数在整个代码中有极多次被调用的经历。 这其实是一个还原字符串的函数。 具体的实现先不管,我们只要知道可以调用它实现一定的功能即可。 怎样验证呢?就是将这个函数复制到

js keyup、keypress和keydown事件 详解

血红的双手。 提交于 2020-01-24 21:28:01
js keyup、keypress和keydown事件 详解 js keyup、keypress和keydown事件都是有关于键盘的事件 当一个按键被pressed 或released在每一个现代浏览器中,都可能有三种客户端事件。 keydown event keypress event keyup event keydown事件发生在键盘的键被按下的时候,接下来触发 keypress事件。 keyup 事件在按键被释放的时候触发。 这三个事件在页面中的使用方法如下例: <input id="testkeyevent" name="testkeyevent" onKeyUp ="keyup()" /> <input id="testkeyevent" name="testkeyevent" onkeypress ="keypress()" /> <input id="testkeyevent" name="testkeyevent" onkeydown ="keydown()" /> 对应的js函数: function keyup(){ ...} function keypress(){ ...} function keydown(){ ...} 注意: KeyDown触发后,不一定触发KeyUp,当KeyDown 按下后,拖动鼠标,那么将不会触发KeyUp事件。

从0开发3D引擎(七):学习Reason语言

烂漫一生 提交于 2020-01-24 18:26:46
目录 上一篇博文 下一篇博文 介绍Reason Reason的优势 如何学习Reason? 介绍Reason的部分知识点 大家好,本文介绍Reason语言以及学习Reason的方法。 上一篇博文 从0开发3D引擎(六):函数式反应式编程及其在引擎中的应用 下一篇博文 从0开发3D引擎(八):准备“搭建引擎雏形” 介绍Reason Reason又叫Reasonml,是在Ocaml语言的基础上修改而来,由Facebook ReactJs的开发组开发和维护。 Reason是函数式编程语言,由Bucklescript编译器将其编译为 java script语言。 Reason是专门提供给前端开发者使用的,相对于Ocaml,语法上与javascript更为接近。 Reason的优势 1、从“发展前景”来说: 1)大公司Facebook出品,质量、稳定性、后续维护升级有保证 2)Reason是基于OCaml的,因此随着Ocaml的版本更新,Reason和Bucklescript也会支持Ocaml的新特性 3)函数式编程越来越火,它也在3D引擎中越来越多地使用(如Frostbite公司提出的Frame Graph架构和Data Oriented思想都需要结合函数式编程) 2、从“性能”来说: 1)Reason支持mutable的操作和数据结构 可在性能热点处使用它们,提高性能 2

微信JS初始化--微信JS系列文章(一)

夙愿已清 提交于 2020-01-24 15:35:47
概述    微信JS 的使用方法, 官方文档 已经描述得比较清楚了,这里我就不重复介绍了,本文意在提供现成的代码,供大家快速迭代开发,以及补充一下官方文档描述得不够清楚的地方,避免大家踩相同的坑。 微信JS初始化所需参数 wx.config({ debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: '', // 必填,公众号的唯一标识 timestamp: , // 必填,生成签名的时间戳 nonceStr: '', // 必填,生成签名的随机串 signature: '',// 必填,签名,见附录1 jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); JS-SDK使用权限签名算法   签名生成规则如下:参与签名的字段包括noncestr(随机字符串), 有效的 jsapi_ticket , timestamp(时间戳), url (当前网页的URL,不包含#及其后面部分) 。对所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串string1。这里需要注意的是所有参数名均为小写字符

JS——省市二级联动

随声附和 提交于 2020-01-24 12:04:04
1、核心代码: <script> var cities = new Array(11); cities[0] = new Array("东城区","西城区" ,"崇文区", "宣武区" ,"朝阳区" ,"丰台区","石景山区" ,"海淀区门" ,"头沟区"); cities[1] = new Array(); cities[2] = new Array(); cities[3] = new Array(); cities[4] = new Array(); cities[5] = new Array(); cities[6] = new Array(); cities[7] = new Array(); cities[8] = new Array(); cities[9] = new Array(); cities[10] = new Array(); cities[11] = new Array(); function changeCity(val){ var cityEle = document.getElementById("city"); cityEle.options.length=0; for(var i=0;i<cities.length;i++){ if(val==i){ for(var j=0;j<cities[i].length;j++){ var

JavaScript模块化编程(三)

末鹿安然 提交于 2020-01-24 10:12:34
一、为什么要用require.js? 最早的时候,所有Javascript代码都写在一个文件里面,只要加载这一个文件就够了。后来,代码越来越多,一个文件不够了,必须分成多个文件,依次加载。下面的网页代码,相信很多人都见过。 <script src="1.js"></script>   <script src="2.js"></script>   <script src="3.js"></script>   <script src="4.js"></script>   <script src="5.js"></script>   <script src="6.js"></script>    这段代码依次加载多个js文件。 这样的写法有很大的缺点。首先,加载的时候,浏览器会停止网页渲染,加载文件越多,网页失去响应的时间就会越长;其次,由于js文件之间存在依赖关系,因此必须严格保证加载顺序(比如上例的1.js要在2.js的前面),依赖性最大的模块一定要放到最后加载,当依赖关系很复杂的时候,代码的编写和维护都会变得困难。 require.js的诞生,就是为了解决这两个问题:   (1)实现js文件的异步加载,避免网页失去响应;   (2)管理模块之间的依赖性,便于代码的编写和维护。    二、require.js的加载 使用require.js的第一步,是先去官方网站 下载 最新版本。

js 数组、对象常见的遍历用法大全

♀尐吖头ヾ 提交于 2020-01-24 08:44:03
前言 对于前端js使用中,遍历函数是经常用到的,下面就列举一下前端的常见遍历方法 一、没有返回值的方法 for for 遍历应该是最普通也是最常见的遍历,如下: for ( let i = 0 ; i < 5 ; i ++ ) { console . log ( i ) ; //0 1 2 3 4 5,i为遍历次数 } for…in for…in 语句用于遍历数组或者对象的属性 const person = { id : '1' , name : '李子' } ; for ( let x in person ) { console . log ( x , person [ x ] ) ; } //id 1 //name 李子 //x 为对象的属性名:id、name;persion[x]即为对应的属性值了 注意: 1、该用法用于数组遍历时, x 则是数组的下标 2、一般用于对象属性遍历居多, 不建议对数组使用 ,原因如下: const person = [ { id : '1' , name : '李子' } ] ; person . test = '123' ; for ( let x in person ) { console . log ( x , person [ x ] ) ; } //0 { id: '1', name: '李子' } //test '123' 当数组对象

JS 数组循环遍历方法的对比

时光总嘲笑我的痴心妄想 提交于 2020-01-24 08:18:42
以下介绍比较简单,最好把代码复制到控制台敲一遍 原生for var arr = [1,2,4,6] for(var i = 0, len = arr.length; i < len; i++){ console.log(arr[i]) } forEach 语句 var arr = [1,5,8,9] arr.forEach(function(item) { console.log(item); }) for-in 语句 一般会使用for-in来遍历对象的属性的,不过属性需要 enumerable,才能被读取到. (关于enumerable,参见我的另一篇博客 defineproperty ) var obj = { name: 'test', color: 'red', day: 'sunday', number: 5 } for (var key in obj) { console.log(obj[key]) } for-of 语句 (ES 6) for-of语句在可迭代对象(包括 Array,Map,Set,String,TypedArray,arguments 对象等等)上创建一个迭代循环 var arr = [{name:'bb'},5,'test'] for (item of arr) { console.log(item) } map 方法 (不改变原数组) map

JS高级第1天

不羁岁月 提交于 2020-01-24 06:45:59
阶段目标 主要学习 JS 的 面向对象 编程思想。 对象 概念 在编程领域,任何 事 和 物都可以概括成对象。 对象概念练习 用编程思想抽象出你心仪对象的属性和方法。 对象由属性和方法组成,属性和方法都可以用 键值对 定义。 心仪对象: 属性:特征 身高:150 cm 年龄:36 性别:女 腿:大长腿 方法:功能 - 函数 生活技能:煮饭 运动技能:打篮球 艺术技能:rap <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <script> // 创建一个对象 var person = { // 对象的属性 - 特征 height: "170cm", age: 36, sex: "女", leg: "大长腿", // 生活技能 // 对象的方法 - 功能,技能,函数 liveSkill:function(){ console.log('生活技能: 煮饭'); }, sportSkill

初学JS,遇到Can not read propoty of ‘removeAttributes’ is null

帅比萌擦擦* 提交于 2020-01-24 04:43:26
初学JS,遇到Can not read propoty ‘removeAttributes’ of null 查询了很多大佬们的解答,甚至从stack overflow上也找过答案,大佬们从原理上进行解答,但经过尝试,都没有解决我的实际问题,后来仔细检查过代码后发现,是html中的名字与js中获取的名字没有对上,改后,解决问题。 后来想想,这种粗心的问题,真的。。。摔鼠标吧。。。手动[滑稽] 来源: CSDN 作者: 寒鸦愁却柳绿柔 链接: https://blog.csdn.net/zlsjune123/article/details/103949884