js

js复制粘贴事件

冷暖自知 提交于 2020-03-04 01:25:44
一、相应的事件 copy: 在发生复制操作时触发。 beforecut: 在发生剪切操作 前 触发。 cut: 在 发生 剪切 操作 时 触发。 beforepaste: 在 发生 粘贴 操作 前 触发。 paste: 在 发生 粘贴 操作 时 触发。 相应的事件中,以before开头的事件基本上没啥作用(ie中可以设置剪贴板中的数据,但其它浏览器都不能设置),before相应事件中阻止copy paste cut等行为属于无效操作 二、获取或设置剪贴板数据 操作的数据放在clipboardData对象中的,在ie中这个对象通过window.clipboardData来访问,在其它浏览器中则通过事件处理函数的参数来访问。 clipboardData对象有三个方法:getData()、 setData() 和 clearData()。在使用getData或setData时,要指定文档类型,ie中使用text或URL,其它浏览使用mime类型(text/plain) setData()方法只有在ie中才能设置剪贴板数据,在其它浏览器中设置后剪贴板数据依然无效。 三、第三方库 使用clipboard.js进行操作, 库介绍 来源: https://www.cnblogs.com/94pm/p/9556331.html

js禁止复制粘贴

前提是你 提交于 2020-03-04 01:04:29
1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键,其实是禁止快捷菜单,因为不光右键可以弹出这个菜单,键盘上空格键右边的windows键也可以激活这个快捷菜单 <table border oncontextmenu=return(false)><td>no</table> 可用于Table 2. <body onselectstart="return false"> 禁止选取、防止复制 3. onpaste="return false" 禁止粘贴 4. oncopy="return false;" oncut="return false;" 禁止复制和剪切 5. <input style="ime-mode:disabled"> 关闭输入法 来源: https://www.cnblogs.com/tinyphp/p/3392344.html

js中等性操作符(==)、关系操作符(<,>)和布尔操作符(!)比较规则

牧云@^-^@ 提交于 2020-03-03 23:27:56
  最近一直在笔试面试,经常碰到例如 123=='123' 、 'abc'==true 等问题,其中有答对的,也有答错的,主要原因还是对ECMAScript的规范没有理解清楚,很多题目没有具体分析所导致。现查阅资料后对此进行一些总结。 等性操作符(==) 1、比较的类型是String、Number、Boolean这几个基本类型时 当是这几中类型进行比较时,会先将两边转换成数字,在进行比较。 1 console.log(1 == true); // true转换成数字为1,因此结果为true 2 3 console.log('123' == 123); //true 4 5 console.log('abc' == true); //'abc'转换成数字为NaN,结果为false,ECMAScript规定,NaN与任何值比较都是false,包括NaN==NaN 6 2、上述基本类型与引用类型比较时 首先会调用对象的valueOf()方法,期待返回一个基本类型的值( 测试为若返回Boolean、Number、String、null、undefined或没有返回值,则将不会继续调用toString方法) ,若返回的仍然是一个复合对象的话,则调用其toString()方法,若仍然没有返回上述基本类型的话,则直接判为不相等。 1 var obj = {}; 2 console.log(obj

JS中的迭代

眉间皱痕 提交于 2020-03-03 23:27:40
for each...in 使用一个变量迭代一个对象的所有属性值。对于每一个属性值,有一个指定的语句块被执行。 作为ECMA-357(E4X)标准的一部分,for each...in语句已被废弃,E4X中的大部分特性已被删除,但考虑到向后兼容,for each...in只会被禁用而不会被删除,可以使用ES6中新的for...of语句来代替。大部分非Mozilla浏览器都没有实现该标准,E4X并不是 ECMAScript 标准的一部分。 语法 for each (variable in object) { statement } 参数 variable 用来遍历属性值的变量,前面的var关键字是可选的。该变量是函数的局部变量而不是语句块的局部变量。 object 该对象的属性值会被遍历。 statement 遍历属性值时执行的语句。 如果想要执行多条语句,请用({ ... }) 将多条语句括住。 警告 永远不要使用for each...in语句遍历数组,仅用来遍历常规对象。 一些对象的内置属性是无法被遍历到的,包括所有的内置方法,例如String对象的indexOf方法。不过,大部分的用户自定义属性都是可遍历的。 for...in for...in语句以任意顺序遍历一个对象的可枚举属性。对于每个不同的属性,语句都会被执行。 语法 for (variable in object) {.

JS高级-ES6

元气小坏坏 提交于 2020-03-03 23:21:38
let/const 变量和常量 不能重复定义 case1 { //js var a = 10 a = 20 // es6 let b = 10 b = 30 const c = 10 c = 40 //报错 } 存在块级作用域 case2 { const obj = { a: 10 } obj.b = 20 } 多行字符串/模板变量 case { var name = 'susan', age = 18, html = '' //JS html += '<div>' + '<p>' + name + '</p>' + '<p>' + age + '</p>' + '</div>' //ES6 html += `<div> <p>${name}</p> <p>${age}</p> </div> ` } 解构赋值 case1 { var obj = { a: 10, b: 20 } // JS var a = obj.a var b = obj.b // ES6 let {a, b} = obj } case2 { function fn(){ return { a: 10, b: 20 } } let {a, b} = fn() console.log(a, b) } 块级作用域 case { var arr = [1, 2, 3, 4, 5] // JS for(var i = 0

js之循环控制

微笑、不失礼 提交于 2020-03-03 21:55:02
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>循环控制</title></head><body><p>加油</p><p>武汉</p><p>加油</p><p>中国</p> <script> var elem=document.getElementsByTagName('p'); for (var i=0;i<elem.length;i++){ console.log(elem[i]); } </script></body></html> 来源: https://www.cnblogs.com/cxydnxs/p/12404687.html

Js 图片轮播渐隐效果

点点圈 提交于 2020-03-03 21:39:18
1 <!DOCTYPE html> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <title></title> 6 <style type="text/css"> 7 * { 8 margin:0px; 9 padding:0px; 10 } 11 li { 12 list-style: none; 13 } 14 /*example*/ 15 .example { 16 width:600px; 17 height:400px; 18 overflow:hidden; 19 position:relative; 20 margin:50px auto; 21 } 22 .example ol { 23 position: relative; 24 width: 120px; 25 height: 20px; 26 top: -30px; 27 left: 60px; 28 } 29 30 .example ol li { 31 float: left; 32 width: 10px; 33 height: 10px; 34 margin: 5px; 35

js渐隐渐现图片切换效果

非 Y 不嫁゛ 提交于 2020-03-03 20:17:22
1.前端页面布局 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>js渐隐渐现图片切换效果</title> <style type="text/css"> *{margin:0;padding:0;list-style-type:none;} a,img{border:0;} body{font:12px/180% Arial, Helvetica, sans-serif, "新宋体";} /* focus */ #focus{width:380px;height:504px;margin:0 auto;} #focus div{position:absolute;width:380px;height:504px;overflow:hidden;} #focus img{width:380px;height:504px;} #focus #focus_img{display:none;} </style> </head> <body> <div id="focus"> <div id="focus_bg"></div> <div id="focus_show"></div>

js的冒泡排序和选择排序

邮差的信 提交于 2020-03-03 19:48:41
冒泡排序 概念 依次对数组中相邻数字进行比较(两两比较),大的放后面 学前准备 思考1 : i < arr.length 是遍历几次 i < arr.length-1 是遍历几次 思考2 : 交换两个变量 思考3 :数组中的最大值放到最后 var arr = [5, 4, 3, 2, 1]; 冒泡排序算法 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。 在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 代码实现 var arr = [5,99,2,9,1,5,67,7,10,23]; //定义一个杂乱的数组 for(var i=0;i<arr.length-1;i++){ //大循环,用于遍历数组每个元素 for(var j=0;j<arr.length-i-1;j++){ //小循环,用于将数组中的某个元素与其它所有元素相比较 var sum; //声明一个局部变量,当作第三个空瓶子 if(arr[j]>arr[j+1]){ //判断当前元素和后一个元素的大小,如果当前元素比后一个元素大 sum = arr[j+1]; //将后一个元素(小元素)放在空瓶子里 arr[j+1] = arr[j]; /

JS中的常用数组方法

无人久伴 提交于 2020-03-03 19:14:27
JS中的常用数组方法 concat() 连接两个或更多的数组,并返回结果。 join() 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。 pop() 删除并返回数组的最后一个元素 push() 向数组的末尾添加一个或更多元素,并返回新的长度。 reverse() 颠倒数组中元素的顺序。 shift() 删除并返回数组的第一个元素 slice() 从某个已有的数组返回选定的元素 sort() 对数组的元素进行排序 splice() 删除元素,并向数组添加新元素。 toSource() 返回该对象的源代码。 toString() 把数组转换为字符串,并返回结果。 toLocaleString() 把数组转换为本地数组,并返回结果。 unshift() 向数组的开头添加一个或更多元素,并返回新的长度。 valueOf() 返回数组对象的原始值 一、slice(start,end) *从start开始截取到end但是不包括end *返回值为截取出来的元素的集合 *原始的数组不会发生变化 var arr = [1,2,3,4,5,6,7,"f1","f2"]; console.log(arr.slice(2)); //[3, 4, 5, 6, 7, "f1", "f2"] console.log(arr.slice(2,3)); //[3]; console.log(arr