js代码

H5与Native交互之JSBridge技术

谁说胖子不能爱 提交于 2020-02-27 06:17:55
一、原理篇 下面分别介绍IOS和Android与Javascript的底层交互原理 IOS 在讲解原理之前,首先来了解下iOS的UIWebView组件,先来看一下苹果官方的介绍: You can use the UIWebView class to embed web content in your application. To do so, you simply create a UIWebView object, attach it to a window, and send it a request to load web content. You can also use this class to move back and forward in the history of webpages, and you can even set some web content properties programmatically. 上面的意思是说UIWebView是一个可加载网页的对象,它有浏览记录功能,且对加载的网页内容是可编程的。说白了UIWebView有类似浏览器的功能,我们使用可以它来打开页面,并做一些定制化的功能,如可以让js调某个方法可以取到手机的GPS信息。 但需要注意的是,Safari浏览器使用的浏览器控件和UIwebView组件并不是同一个

JS语言里的 if 语句的运用

谁说胖子不能爱 提交于 2020-02-27 04:38:04
需要注意的点: 1.拼接只对于字符串; 2.等于用==表示; 3.先定义,后赋值,var a=10; 如果定义小数或整数的变量,等号后面的值直接写。 4.所有字符全部是英文半角的 5.>=大于等于;<=小于等于; 6.JS语言在html中位置有三块,但为了保险起见,一般都是放在</html>之后。 <script type="text-Javascript">代码放在里面</script> <script src="">外部样式 7.语句顺序,结束要加; 8./代表除,%代表余数 9.//注释一行;/*注释多行*/ 10.三元运算符:var l = a = b?"相等":"不等于" alert(l); 条件?“正确返回的内容”:“错误返回的内容” 例题: 输入三个整数,x,y,z,最终以从小到大的方式输出。      var x = prompt( '输入x',"x"); var y = prompt( '输入y',"y"); var z = prompt( '输入z',"z"); x=parseInt(x);y=parseInt(y);z=parseInt(z); if( x>y&&y>z) { alert( z+","+y+","+x); } else if(x>z&&z>y) { alert(y+","+z+","+x); } else if( y>x&&x>z) {

Bootstrap4速成笔记五 Listgroup,Modal,Nav,NavBar

醉酒当歌 提交于 2020-02-27 04:22:04
目录 Listgroup列表群组组件 Modal对话框组件 Nav导航与NavBar导航栏组件 Listgroup列表群组组件 使用list-group可以创建一个列表群组 使用方法:可以使用无序列表或者div进行设置,在这里使用的是div+a的设置,如需要使用无序列表可以直接看下面的源码 首先在外面套一个类为"list-group",然后在内部使用a标签设置每个列表的内容,每个a标签都要设置类为"list-group-item"设置成列表项 如果想要设置悬停的hover效果,可以在每个列表项的类中加入"list-group-item-action" < div class = " component demo " > < div class = " list-group " > < a href = " # " class = " list-group-item list-group-item-action " > HTML </ a > < a href = " # " class = " list-group-item list-group-item-action " > CSS </ a > < a href = " # " class = " list-group-item list-group-item-action " > JS </ a > </ div > </

通过js获取DropDownList的选中项

耗尽温柔 提交于 2020-02-27 03:52:36
1 <html xmlns="http://www.w3.org/1999/xhtml"> 2 <head runat="server"> 3 <title></title> 4 <script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script> 5 <script type="text/javascript"> 6 $(document).ready(function () { 7 //写法1 8 //var ddl = document.getElementById("<%=ddlDept.ClientID %>"); 9 //写法2 10 //var ddl=$("#<%=ddlDept.ClientID%>"); 11 alert(ddl.selectedIndex); 12 }); 13 14 15 function show(obj) { 16 var v = $(obj).val(); 17 alert(v); 18 } 19 </script> 20 </head> 21 <body> 22 <form id="form1" runat="server"> 23 <div> 24 <asp:DropDownList runat="server" ID="ddlDept"

Js apply 和 call 方法 详解

梦想的初衷 提交于 2020-02-27 01:32:41
我在一开始看到javascript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了,在这里我做如下笔记,希望和大家分享.. 如有什么不对的或者说法不明确的地方希望读者多多提一些意见,以便共同提高.. 主要我是要解决一下几个问题: 1. apply和call的区别在哪里 2. 什么情况下用apply,什么情况下用call 3. apply的其他巧妙用法(一般在什么情况下可以使用apply) 我首先从网上查到关于apply和call的定义,然后用示例来解释这两个方法的意思和如何去用. apply:方法能劫持另外一个对象的方法,继承另外一个对象的属性. Function.apply(obj,args)方法能接收两个参数 obj:这个对象将代替Function类里this对象 args:这个是数组,它将作为参数传给Function(args-->arguments) call:和apply的意思一样,只不过是参数列表不一样. Function.call(obj,[param1[,param2[,…[,paramN]]]]) obj:这个对象将代替Function类里this对象 params:这个是一个参数列表 1. apply示例: <script type="text/javascript"> /

JS —— 闭包

纵饮孤独 提交于 2020-02-27 00:31:21
变量作用域 闭包的概念 闭包的用途 深入理解闭包 闭包的应用场景 Javascript的垃圾回收机制 JavaScript匿名函数详细介绍 变量作用域 两种变量作用域: 全局变量 局部变量 理解下面三段JS函数 var n = 999 ;    function f1 ( ) {     alert ( n ) ;    }    f1 ( ) ; // 999 function f1 ( ) {    var n = 999 ; } alert ( n ) ; // error function f1 ( ) {   n = 999 ; } f1 ( ) ; alert ( n ) ; // 999 返回顶层目录 闭包的概念 官方解释:闭包是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。 通俗解释: JavaScript中所有的function都是一个闭包。 闭包就是能够读取其他函数内部变量的函数。 由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成“定义在一个函数内部的函数”。所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。 返回顶层目录 闭包的用途 闭包的两个用途: 一个是前面提到的可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。

JS逆向某网站登录密码分析

让人想犯罪 __ 提交于 2020-02-26 19:32:40
声明: 本文仅供研究学习使用,请勿用于非法用途! 目标网站 aHR0cHM6Ly9hdXRoLmFsaXBheS5jb20vbG9naW4vaW5kZXguaHRt 今日目标网站是某知名支付网站,感觉自己有点飘了~~ 这里只解密密码的加密方式 请求分析 先看请求,输入账号,密码后点击登录,记得提前浏览器打开 F12 这里注意输入错误的密码,方便我们查看请求数据包 在浏览器的开发者工具界面,快捷键 Crtl+Shift+F 直接打开全局搜索, 定位加密 根据上面的搜索关键词 password= ,我在 index.js 文件种定位到了加密位置 getPassword,熟悉的 RSA 加密 打上断点后,重新发请求,果不其然,在断点处停下来了! 解密 之前有讲过一篇有关 RSA 加密的专题,这里可以直接将 RSA 相关的代码拷贝下来。我们主要来改写这个 getPassword 加密函数, 原函数如下,其中 n = e.alipayEncrypt(2, i, t) 是最后要返回的结果! function getPassword(t) { var e = new s.RSA; i = s.Base64.decode(this.options.TS) e.setPublicKey(this.options.PK); return e.alipayEncrypt(2, i, t);

6种JavaScript继承方式及优缺点

最后都变了- 提交于 2020-02-26 18:37:44
友情提示: 想要更好的理解JS继承方式,须了解构造函数、原型对象、实例化对象、原型链等概念 第一种:原型链继承 利用原型链的特点进行继承 function Parent(){ this.name = 'web前端'; this.type = ['JS','HTML','CSS']; } Parent.prototype.Say=function(){ console.log(this.name); } function Son(){}; Son.prototype = new Parent(); son1 = new Son(); son1.Say(); 以上例子解释: ①创建一个叫做Parent的构造函数,暂且称为父构造函数,里面有两个属性name、type ②通过Parent构造函数的属性(即原型对象)设置Say方法,此时,Parent有2个属性和1个方法 ③创建一个叫做Son的构造函数,暂且称为子构造函数 ④设置Son的属性(即原型对象)值为父构造函数Parent的实例对象,即子构造函数Son继承了父构造函数Parent,此时Son也有2个属性和1个方法 ⑤对Son构造函数进行实例化,结果赋值给变量son1,即son1为实例化对象,同样拥有2个属性和1个方法 ⑥输出son1的Say方法,结果为"web前端" 优点:可以实现继承 缺点: ①因为Son.prototype

js作用域以及变量提升

怎甘沉沦 提交于 2020-02-26 16:27:19
一、作用域 定义 作用域,即产生作用的特定区域。 javaScript的作用域,即js的变量或者函数产生作用的对应区域。也就是说区域内的可以访问区域外的变量和函数,但是区域外的则不能访问区域内的变量和函数。 分类 在ES5中,作用域分为两种:全局变量和局部变量。 (1)全局变量:所有地方均可访问(在函数外部声明的变量); (2)局部变量:只能在函数内部访问(在函数内部用var关键字声明的变量以及函数的形参)。 在ES6中,新增了块级作用域。 (3)块级作用域:只能在距离最近的大括号的作用范围内访问(仅限于let声明的变量)。 应用 // 全局变量 var i = 0 ; // 定义外部函数 function outer(){ // 访问全局变量 console.log(i); // (1) function inner1(){ console.log(i); // (2) } // inner2中定义局部变量 function inner2(){ console.log(i); // (3) var i = 1; console.log(i); // (4) } inner1(); inner2(); console.log(i); // (5) } outer();//输出结果依次为:0 0 undefined 1 0 注释(1)处:outer()内未声明和定义局部变量i,

js原生Ajax代码

拜拜、爱过 提交于 2020-02-26 15:17:01
var Ajax = { get : function ( url , fn ) { // XMLHttpRequest对象用于在后台与服务器交换数据 var xhr = new XMLHttpRequest ( ) ; xhr . open ( 'GET' , url , false ) ; xhr . onreadystatechange = function ( ) { // readyState == 4说明请求已完成 if ( xhr . readyState == 4 ) { if ( xhr . status == 200 || xhr . status == 304 ) { console . log ( xhr . responseText ) ; fn . call ( xhr . responseText ) ; } } } xhr . send ( ) ; } , // data应为'a=a1&b=b1'这种字符串格式,在jq里如果data为对象会自动将对象转成这种字符串格式 post : function ( url , data , fn ) { var xhr = new XMLHttpRequest ( ) ; xhr . open ( 'POST' , url , false ) ; // 添加http头,发送信息至服务器时内容编码类型 xhr .