JavaScript-1
- 格式:ppt
- 大小:313.50 KB
- 文档页数:22
js 数字对象1-5之间的随机数字方法(原创版3篇)目录(篇1)1.引入:介绍 JavaScript 数字对象2.随机数字对象的生成方法:a.使用 Math.random() 生成 0-1 之间的随机数b.使用 Math.floor() 和 Math.random() 生成随机整数c.使用 Array 和 Math.random() 生成随机数组3.示例代码:a.示例 1:生成 1-5 之间的随机整数b.示例 2:生成 1-5 之间的随机浮点数c.示例 3:生成 1-5 之间的随机数组4.结论:总结 JavaScript 数字对象生成随机数字的方法正文(篇1)在 JavaScript 中,数字对象是一种内置的对象,可以用来执行各种数学运算。
今天要介绍的是使用 JavaScript 数字对象生成 1-5 之间的随机数字的方法。
首先,我们来看如何生成 0-1 之间的随机数。
可以使用Math.random() 函数,它返回一个大于等于 0 且小于 1 的随机数。
示例代码如下:```javascriptlet randomNum = Math.random();console.log(randomNum);```接下来,我们考虑如何生成随机整数。
可以使用 Math.floor() 函数,它返回小于或等于参数的最大整数。
结合 Math.random(),我们可以生成一个随机整数。
示例代码如下:```javascriptlet randomInt = Math.floor(Math.random() * 5) + 1;console.log(randomInt);```最后,我们来看如何生成随机数组。
可以使用 Array 和Math.random() 函数。
首先创建一个长度为 5 的空数组,然后使用 for 循环遍历数组,并为每个元素赋值。
示例代码如下:```javascriptlet randomArray = [];for (let i = 0; i < 5; i++) {randomArray.push(Math.floor(Math.random() * 5) + 1);}console.log(randomArray);```综上所述,我们介绍了三种使用 JavaScript 数字对象生成 1-5 之间随机数字的方法:使用 Math.random() 生成 0-1 之间的随机数,使用Math.floor() 和 Math.random() 生成随机整数,以及使用 Array 和Math.random() 生成随机数组。
JS实现日期加减的方法JavaScript中有多种方法可以实现日期的加减操作。
以下是常见的几种方法:1. 使用Date对象的方法:- setDate(:设置日期的天数,并返回新的日期对象。
- setMonth(:设置日期的月份(0-11),并返回新的日期对象。
- setFullYear(:设置日期的年份,并返回新的日期对象。
- getTime(:获取日期的时间戳。
- setTime(:设置日期的时间戳,并返回新的日期对象。
通过结合这些方法,我们可以实现日期的加减操作。
例如,要将日期加一天,可以使用`setDate(getDate( + 1)`方法。
同样地,要将日期减一天,可以使用`setDate(getDate( - 1)`方法。
下面是一个简单的示例,演示如何使用Date对象的方法进行日期的加减操作:```javascript//加一天function addOneDay(date)return new Date(date.getTime( + 24 * 60 * 60 * 1000);}//减一天function minusOneDay(date)return new Date(date.getTime( - 24 * 60 * 60 * 1000);}var currentDate = new Date(; // 当前日期var nextDate = addOneDay(currentDate); // 加一天var previousDate = minusOneDay(currentDate); // 减一天console.log(currentDate);console.log(nextDate);console.log(previousDate);```2. 使用第三方库moment.js:moment.js是一个流行的JavaScript日期处理库,提供了丰富的日期操作方法,包括日期的加减操作。
事件(上)(不好意思,又是标题党)JavaScript事件列表事件解说一般事件onclick 鼠标点击时触发此事件ondblclick 鼠标双击时触发此事件onmousedown 按下鼠标时触发此事件onmouseup 鼠标按下后松开鼠标时触发此事件onmouseover当鼠标移动到某对象范围的上方时触发此事件onmousemove 鼠标移动时触发此事件onmouseout 当鼠标离开某对象范围时触发此事件onkeypress当键盘上的某个键被按下并且释放时触发此事件.onkeydown当键盘上某个按键被按下时触发此事件onkeyup当键盘上某个按键被按放开时触发此事件页面相关事件onabort 图片在下载时被用户中断onbeforeunload当前页面的内容将要被改变时触发此事件onerror 出现错误时触发此事件onload 页面内容完成时触发此事件onmove 浏览器的窗口被移动时触发此事件onresize当浏览器的窗口大小被改变时触发此事件onscroll浏览器的滚动条位置发生变化时触发此事件onstop浏览器的停止按钮被按下时触发此事件或者正在下载的文件被中断oncontextmenu 当弹出右键上下文菜单时发生onunload 当前页面将被改变时触发此事件表单相关事件onblur 当前元素失去焦点时触发此事件onchange当前元素失去焦点并且元素的内容发生改变而触发此事件onfocus 当某个元素获得焦点时触发此事件onreset当表单中RESET的属性被激发时触发此事件onsubmit 一个表单被递交时触发此事件了解上面的事件如此简单,那么事件还有什么可讲的呢?问题一:每个事件只能注册一个函数Js代码1var oDiv = document.getElementById("oDiv");2oDiv.onclick = fn1;3oDiv.onclick =fn2;4function fn1() {alert("我被覆盖了!")}5function fn2() {alert("只有我被执行到!")}解决方案一:Js代码6obj.onclick = function () {7 fn1();8 fn2();9 fn3();10};缺陷一:需要将所有函数一次添加进去,不能在运行时添加缺陷二:在事件处理函数中this将指向window,而不是obj解决方案二:Js代码11function addEvent(fn,evtype,obj) {12 //obj是要添加事件的HTML元素对象13 //evtype是事件名字,不包含on前缀,因为每个都有on,所以写个on是多余的14 //fn是事件处理函数15var oldFn;16if (obj["on"+evtype] instanceof Function) {17 oldFn = obj["on"+evtype];//当添加函数时,如果已注册过了,则将其保存起来18 }19 obj["on"+evtype]=function () {20if (oldFn) {21 oldFn.call(this);22 }23 fn.call(this);//使用call方法,使事件处理函数中的this仍指向obj24 };25}这样已经解决了问题,但如何删除事件呢?如果直接将对象的onevtype这类的属性赋值为null将会删除所有的事件处理函数!解决方案二的修改版:先将事件存储起来,存储在对象的__EventHandles属性里面Js代码26eventHandlesCounter=1;//计数器,将统计所有添加进去的函数的个数,0位预留作其它用27function addEvent(fn,evtype,obj) {28if(!fn.__EventID) {//__EventID是给函数加的一个标识,见下面给函数添加标识的部分29 fn.__EventID=eventHandlesCounter++;30 //使用一个自动增长的计数器作为函数的标识以保证不会重复31 }32if (!obj.__EventHandles) {33 obj.__EventHandles=[];//当不存在,也就是第一次执行时,创建一个,并且是数组34 }35if (!obj.__EventHandles[evtype]) {//将所有事件处理函数按事件类型分类存放36 obj.__EventHandles[evtype]={};//当不存在时也创建一个散列表37if (obj["on"+evtype] instanceof Function) {38 //查看是否已经注册过其它函数39 //如果已经注册过,则将以前的事件处理函数添加到下标为0的预留的位置40 obj.__EventHandles[evtype][0]=obj["on"+evtype];41 obj["on"+evtype]=handleEvents;//使用handleEvents集中处理所有的函数42 }43 }44 obj.__EventHandles[evtype][fn.__EventID]=fn;45 //如果函数是第一次注册为事件处理函数,那么它将被添加到表中,函数的标识作为下标46 //如果函数已经注册过相同对象的相同事件了,那么将覆盖原来的而不会被添加两次47function handleEvents() {48var fns = obj.__EventHandles[evtype];49for (var i in fns) {50 fns[i].call(this);51 }52 }53}使用上面的函数已经可以在一个对象添加多个事件处理函数,在函数内部this关键字也指向了相应的对象,并且这些函数都被作了标识,那么移除某个事件处理函数就是轻而易举的了!Js代码54//使用传统方法:obj.onevtype = null;但这样会移除所有的事件处理函数55function delEvent(fn,evtype,obj) {56if(!obj.__EventHandles || !obj.__EventHandles[evtype] || !fn.__EventID) {57return false;58 }59if (obj.__EventHandles[evtype][fn.__EventID] == fn) {60delete obj.__EventHandles[evtype][fn.__EventID];61 }62 }-------------------------------------------------新手的分隔线----------------------------------------------------------------事件(下)事件对象——Event事件对象是用来记录一些事件发生时的相关信息的对象。
Javascript考试题库1复习题一、选择题1、写“Hello World”的正确javascript语法是?(A)A. document.write("Hello World")B. "Hello World"C. response.write("Hello World")D. ("Hello World")2、JS特性不包括( D )A.解释性B.用于客户端C.基于对象D.面向对象3、下列JS的判断语句中( )是正确的(A)A.if(i==0)B.if(i=0)C.if i==0 thenD.ifi=0 then4、下列JavaScript的循环语句中( )是正确的( D )A.if(i<10;i++)B.for(i=0;i<10)alert(“a1+a2=”+a1+a2)将显示( )结果A.a1+a2=30B.a1+a2=1020C.a1+a2=a1+a29、将字串s中的所有字母变为小写字母的方法是( B)A.s.toSmallCase()B.s.toLowerCase()C.s.toUpperCase()D.s.toUpperChars()10、以下( )表达式产生一个0~7之间(含0,7)的随机整数. ( C )A.Math.floor(Math.random()*6)B.Math.floor(Math.random()*7)C.Math. floor(Math.random()*8)D.Math.ceil(Math.random()*8)11、产生当前日期的方法是( C )A.Now();B.Date()C.new Date()D.new Now()12、如果想在网页显示后,动态地改变网页的标题( C )A.是不可能的B.通过document.write(“新的标题内容”)C. 通过document.title=(“新的标题内容”)D. 通过document.changeTitle(“新的标题内容”)13、某网页中有一个窗体对象,其名称是mainForm,该窗体对象的第一个元素是按钮,其名称是myButton,表述该按钮对象的方法是( B )A.document.forms.myButtonB.document.mainForm.myButtonC.document.forms[0].element[0]D.以上都可以14、HTML文档的树状结构中,()标签为文档的根节点,位于结构中的最顶层。
Company name WEB 前端开发技术HTML JavaScriptCSS WEB 前端开发技术第9讲JavaScript (1)计算机科学与技术系计算机科学与技术系Web 前端开发技术主要内容掌握JavaScript 语言的基本语法理解JavaScript 语言的作用和执行方式掌握在网页中使用客户端脚本的方法Web前端开发技术9.1 JavaScript基础计算机科学与技术系JavaScript简介最初LiveScript,Netscape公司开发,弥补了HTML只能提供静态资源的缺陷,将静态网页变成动态网页。
JavaScript是一种面向对象、基于事件驱动的轻量级、解释性脚本语言,类似于C、VB,但不需要编译。
JavaScript语言特点(1)安全性(Browser无法访问本地硬盘数据/写入到数据库);(2)易用性(脚本、无严格数据类型);(3)动态交互性(JS可以直接对用户提交的信息作出回应);(4)跨平台性(支持JS的Browser)。
Web 前端开发技术9.1.1 JavaScript起步计算机科学与技术系一个实例<!--程序9-1 --><html><title>这是我的第一个JavaScript程序</title><body><script type="text/javascript">document.write("欢迎进入JavaScript学习之旅!");</script></body></html>计算机科学与技术系Web 前端开发技术9.1.1 JavaScripte 位置与运行基本语法:<script>在页面中的位置:(1)<head>;(2)<body>;(3)单独的js 文件;(4)直接在事件处理代码中。
JavaScript语法基础(1)1、JavaScript是什么?1)定义:JavaScript「JS」是⼀种⾼级的、动态的、弱类型的、解释型的计算机编程脚本语⾔。
2)原理:3)组成:3⼤部分:◆ ECMAScript: JS的语法核⼼◆ DOM: Document Object Model;⽂档对象模型;提供访问和操作⽹页的⽅法和接⼝◆ BOM: Browser Object Model;浏览器对象模型;提供与浏览器交互的⽅法和接⼝4)总结:JS是⼀种专门为⽹页交互⽽设计的、简单⽽⼜复杂的脚本程序语⾔。
2、JS的发展简史是怎样的?●慢速的⽹络 + 表单提交 + 服务器验证 = 糟糕的体验;● 1995年,Netscape「⽹景公司」,LiveScript;●为了跟风,更名为了JavaScript;● "浏览器⼤战"时期,IE <=> Netscape Navigator;●由于语法和特性上没有标准化,不同公司的浏览器实现不⼀样,导致JS出现了⼀定程度的混乱;●欧洲计算机制造协会「ECMA」组织出现完成并定义了ECMA-262这样⼀种名为ECMAScript的脚本语⾔标准;● ECMAScript5「ES5」是最流⾏的版本;ECMAScript6「ES6」是最新的版本;●各浏览器⼚商基于ECMAScript的标准完成了对各⾃浏览器的标准更新,实现统⼀;●微软借助Windows的垄断性在"浏览器⼤战"中战胜⽹景。
3、JS的使⽤场景有哪些?1)HTML、CSS和JS三者的关系:2)JS的使⽤场景:最初的JS只⽤来⽀持⽹页表单数据的验证,如今的JS⼴泛使⽤于如下各种场景:◆⽹页/⽹游/页游;◆ Electron.js框架和V8「JS渲染引擎」,制作桌⾯程序;◆ React.js可以制作⼿机/移动端程序;◆ Node.js⽤来作为后端运⾏环境。
3)为什么JS⾮常值得我们学习?◆⽬前,全世界⼏乎所谓的⽹站都在使⽤JS;◆⼏乎所有现代的浏览器都直接原⽣⽀持JS;PC/⼿机/平板等⼏乎所有硬件设备也⽀持JS;◆作为Web⼯程师和Java⼯程师,如果想制作漂亮的⽹页;或者实现⾼效的动态验证,JS是必须的⼯具。
一、不定项选择题(每题3分,共42分)1.Javascript的数据类型主要有(ADE )A.stringB.intC.floatD.booleanE.number2.关于变量的命名规则,下列说法正确的是(BD )A.变量名不区分大小写B.首字母必须是大写、小写的字母、下划线或美元符C.首字母可以是数字D.变量名不能是保留字3.关于Javascript与Java的下列说法正确的是(BCD )A.Javascript是Java语言的简化版本,作为网页脚本中使用B.Java是面向对象的语言,Javascript是基于对象的语言C.Javascript里变量类型是弱类型,Java为强类型D.Java是编译型,Javascript是解释型语言4.在Javascript中,创建数组的代码可以为下列的哪些?(BD )A.var arr = new Array[3]B.var arr = new Array(3)C.var arr = new Array[]D.var arr = []5.有两个变量var1=5;var2=8,下列给出的逻辑语句中,( AD )的结果为trueA.(var1==5)&&(var1!=var2)B.(var1==5)&&(var1<>var2)C.(var1==8)||!(var1!=var2)D.!(var1==5)||(var1<=var2)6.A.y=2 z=4B.y=2 z=5C.y=undefined z=undefinedD.y=0 z=07.以下哪条语句会产生运行错误(A)A.var obj = ( )B.var obj = [ ]C.var obj ={ }D.var obj = / /8.obj对象有att属性,那么要获取att属性的值,以下(ADE)是可以的A.obj["att"]B.obj("att")C.obj{"att"}D.obj["a"+"t"+"t"]E.obj.att9.输出的结果是(D)A.case 1B.case 2C.defaultD.case 2 default10.分析下面的Javascript代码段var str="I am a student";a=str.substring (9,13);document.write(a);输出结果是(C)A.studB.tudenC.udenD.udentB.0 1 4 9 16C.0 1 2 3 4 5D.0 1 4 9 16 2512.分析下面程序代码片段var arr = "10,5".split(",");var m = arr[0]+arr[1];var n = arr[0]-arr[1];以下描述正确的是(BC )A.m=15B.m=105C.n=5D.n=10513.执行下面程序段后,b的值是(D)var a,b;for(a=1,b=0;a>b;a++) b=a;A.0B. 1C. 2D.死循环14.分析下面的Javascript代码段:var a = new Array(2,3,4,5,6);var sum=0;for(i=1; i<a.length; i++){sum+=a[i];}document.write(sum);输出结果是( A )A.18B.20C.12D.14二、问答题(每题5分,共10分)1、列举Javascript的三种基本数据类型、两种复合(引用)数据类型和两种特殊数据类型String、number、booleanObject、Arraynull、undefined2、列举JavaScript里的常用几种本地对象(至少4种以上)和两种内置对象,并说明两类对象类型的区别Object、Array、String、Boolean。
JavaScript中国象棋程序(1)-界⾯设计“JavaScript中国象棋程序” 这⼀系列教程将带你从头使⽤JavaScript编写⼀个中国象棋程序。
这是教程的第1节。
程序的最终效果。
这⼀系列共有9个部分:0、1、2、3、4、5、6、7、8、这⼀节我们设计图形界⾯,显⽰初始化棋局。
当点击某棋⼦时,弹窗提⽰所点击的具体棋⼦。
效果如下:1.1、棋盘表⽰中国象棋有10⾏9列,很⾃然地想到可以⽤10×9矩阵表⽰棋盘。
事实上,我们使⽤16×16矩阵来表⽰⼀个扩充了的虚拟棋盘。
如上图所⽰,灰⾊部分为真实棋盘,置于虚拟棋盘之中。
这么做可以快速判断棋⼦是否⾛出边界。
例如象沿⽥字⾛,如果⾛到真实棋盘之外的虚拟棋盘中,说明⾛法不合法。
容易想到使⽤⼆维数组表⽰16×16矩阵,这样棋盘上的⼀个位置需要两个变量表⽰。
⼀个⾛法包括起点和终点,就需要四个变量。
如果使⽤长度为256的⼀维数组表⽰,⼀个位置只需⼀个变量,这就可以减少计算量。
因此⽤⼀维数组表⽰16×16矩阵。
⼀维矩阵和⼆维矩阵之间的转换也很简单:// 将⼆维矩阵转换为⼀维矩阵function COORD_XY(x, y) {return x + (y << 4);}// 根据⼀维矩阵,获取⼆维矩阵⾏数function RANK_Y(sq) {return sq >> 4;}// 根据⼀维矩阵,获取⼆维矩阵列数function FILE_X(sq) {return sq & 15;}其中,sq & 15是通过位运算取余,与sq % 16结果相同()。
再使⽤⼀个辅助数组,标识虚拟棋盘中,哪些位置属于真实棋盘:var IN_BOARD_ = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,];要判断某位置是否在真实棋盘,可使⽤函数:function IN_BOARD(sq) {return IN_BOARD_[sq] != 0;}1.2、棋⼦表⽰使⽤整数表⽰棋⼦:将⼠象马车炮卒红⽅891011121314⿊⽅16171819202122棋⼦这样表⽰,可以快速判断某棋⼦属于红⽅还是⿊⽅,如下表所⽰:红⽅棋⼦⿊⽅棋⼦⼗进制⼆进制⼗进制⼆进制80000 1000160001 000090000 1001170001 0001100000 1010180001 0010110000 1011190001 0011120000 1100200001 0100130000 1101210001 0101140000 1110220001 0110可以看出:红⽅棋⼦ & 8 = 1⿊⽅棋⼦ & 16 = 11.3、字符串表⽰局⾯使⽤数组表⽰局⾯,程序处理起来很⽅便,但是再⽹上传递棋局很不⽅便。
indexof方法!=-1indexOf()方法来查找字符串中子字符串的索引。
String.prototype.indexOf() 返回字符串 (str) 中第一次出现子字符串(substr) 的索引:•let index = str.indexOf(substr, [, fromIndex]);如果str 不包含substr,则返回-1。
fromIndex 是一个可选参数,用于指定搜索开始的索引。
它默认为零(0),这意味着如果您省略fromIndex,搜索将从字符串的开头开始。
indexOf() 始终执行区分大小写的搜索。
要查找字符串中子字符串最后一次出现的索引,请使用lastIndexOf() 方法。
JavaScript String indexOf() 示例让我们举一些使用indexOf() 方法的例子。
1) 使用indexOf() 方法示例以下示例使用indexOf() 获取字符串'finding substring in string' 中第一次出现子字符串'str' 的索引:•let str = 'finding substring in string';let index = str.indexOf('str'); console.log(index); // 112) 使用indexOf() 计算字符串中子字符串的出现次数下面的示例使用indexOf() 方法计算字符串'You don't know what you don't know until you know.' 中子字符串'know' 的出现次数:•let str = 'You do not know what you do not know until you know.';let substr = 'know';let count = 0;let index = str.indexOf(substr);while(index !== -1) { count++;index = str.indexOf(substr, index + 1);}console.log(count);程序是怎么运行的:首先,使用indexOf() 方法查找str 中第一次出现的substr。
第一天1:定义javascript是一种弱类型、动态类型、解释型的脚本语言。
弱类型:类型检查不严格,偏向于容忍隐式类型转换。
强类型:类型检查严格,偏向于不容忍隐式类型转换。
动态类型:运行的时候执行类型检查。
静态类型:编译的时候就知道每个变量的类型。
解释型:程序不需要编译,程序在运行的时候才翻译成机器语言,每执行一次都要翻译一次,因此效率比较低,但是跨平台性好。
编译型:程序在执行之前需要一个专门的翻译过程,把程序编译为机器语言的文件,运行时直接使用编译的结果就行了。
标记语言:标记语言的存在就是用来被读取(浏览)的,而其本身是没有行为能力的,在标记语言里你会看到<和>这些尖括号,这是用来写出“层次”和”属性”的,换句话说,它是被动的。
并不具备与访问者互动的能力。
编程语言:它是具有逻辑性和行为能力,这是主动的。
说通俗一点,它是有思想的。
脚本语言:它介于标记语言和编程语言之间,脚本语言不需要编译,可以直接用,由解释器来负责解释。
2:JS历史1:Netsape发明了javascript。
1994年,网景公司(Netscape)发布了Navigator浏览器0.9版。
这是历史上第一个比较成熟的网络浏览器,轰动一时。
但是这个版本的浏览器只能用来浏览,不具备与访问者互动的能力。
比如,网页上有一栏用户名需要填写,浏览器无法判断用户是否真的填写了,只有让服务器去判断。
如果没有填写就返回错误,要求用户重新填写。
太浪费时间和服务器资源了。
更何况在那个用调制解调器上网的年代。
2:JS之父Brendan Eich(布兰登· 艾奇)网景公司急需一种网页脚本语言,使得浏览器可以与网页互动。
当时工程师Brendan Eich就是负责开发这种新语言。
3:为什么叫JavaScript1995年Sun公司将Oak语言改名为Java,正式向市场推出。
Sun公司大肆宣传,允诺这种语言可以”一次编译,到处运行”。
很有可能成为未来市场的主宰。
javascript:history.go(-1)的使⽤1.问题描述在微信项⽬开发中,⽐如常⽤联系⼈的增删改查操作中,⽐如跳⼊常⽤联系⼈管理页⾯,选中⼀个联系⼈修改它,就会跳⼊修改页⾯,修改完成后跳转到常⽤联系⼈管理页⾯,此时如果修改成功跳转采⽤的是页⾯跳转,则⽤户在按了返回键的话就会返回到修改页⾯,这是不正常的。
2.解决在修改完成后不采⽤页⾯跳转的⽅式,⽽是采⽤javascript:history.go(-1),这样返回到了联系⼈管理页⾯后再按返回键会直接跳转到个⼈中⼼ 同样如果中间连续跳了两个页⾯,⽐如修改⼿机号,从个⼈信息-->点击修改⼿机号-->验证⼿机号密码-->修改⼿机号-->跳转回个⼈信息,此时也不应使⽤页⾯跳转的⽅式,⽽是采⽤javascript:history.go(-2),这样修改完⼿机号后返回到个⼈信息,如果⽤户再按返回键会直接跳转到个⼈中⼼,⽽不是修改⼿机号页⾯。
3.代码⽰例修改常⽤联系⼈部分ajax请求$.ajax({url:'${request.contextPath}/wx/contacts/editSubmit.html',data:{"id":id,"username":username,"typename":typename,"certificateNo":certificateNo},type:'post',dataType:'json',success:function(data){if(data.code==0){layer.msg(data.message,{icon: 1,time:LAYUIConstant.TIP_TIME});/* setTimeout(function () {location.href="${request.contextPath}/wx/contacts/touristMange.html";}, 1500); */location.href="javascript:history.go(-1)"; //修改成功直接返回到常⽤联系⼈管理页⾯}else{layer.msg(data.message,{icon: 5,time:layUIConstant.TIP_TIME});}},error:function(data){layer.msg(data.message,{icon: 5,time:LAYUIConstant.TIP_TIME});}});修改⼿机号部分代码function butSubmit(){var mobile = $("#mobile").val();if($.trim(mobile)==""){layer.msg("请输⼊⼿机号!",{icon:5,time:JTDUIConstant.TIP_TIME});$("#mobile").focus();return;}var smscode = $("#smscode").val();if($.trim(smscode)==""){layer.msg("请输⼊验证码!",{icon:5,time:JTDUIConstant.TIP_TIME});$("#smscode").focus();return;}$.ajax({url : '${request.contextPath}/wx/personalManagement/modifyMobile.html',type : 'post',data: {"smscode":smscode,"mobile":mobile},dataType:"json",success : function(data) {if (data.code == 0) {layer.msg(data.message,{icon:1,time:LAYUIConstant.TIP_TIME});location.href="javascript:history.go(-2)";} else {layer.msg(data.message,{icon:5,time:LAYUIConstant.TIP_TIME});return;}},error:function(data) {layer.msg(data.message,{icon:5,time:LAYUIConstant.TIP_TIME});}});}。