禁止右键和复制

$(document).ready(
function() {
     document.body.oncontextmenu = document.body.ondragstart = document.body.onselectstart = document.body.onbeforecopy = function() {
return false;
};
document.body.onselect = document.body.oncopy =document.body.onmouseup = function() {
document.selection.empty();
};
});

JSON的字符串解析成JSON数据格式

//1、 eval() -- 计算javascript字符串
var dataObj=eval("("+data+")");//转换为json对象
alert(eval("{}"); // return undefined
alert(eval("({})");// return object[Object] //2、使用Function对象来进行返回解析,典型应用就是在JQUERY中的AJAX方法下的success等对于返回数据data的解析
var json='{"name":"CJ","age":18}';
data =(new Function("","return "+json))();

js页面跳转 

1、window.open()

function goOutSystem(outSystemSign){
  window.open('http://jxjy.cdeledu.com/cdel_jxjy/'+outSystemSign+'.shtml');
}

2、window.location.href

<script language="JavaScript" type="text/javascript">
  window.location.href="target.aspx";
</script>

3、window.navigate

<script language="javascript">
  window.navigate("target.aspx");
</script>

4、window.loction.replace(注意跟第一种方式的区别)

<script language="javascript">
  window.location.replace("target.aspx");
</script>

进系统默认的是1.aspx,进入2.aspx时,用window.location.replace("3.aspx");与window.location.href ("3.aspx");用户界面效果无区别,但当3.aspx调用window.history.Go(-1); window.history.back();时,使用前者的话返回方法不好用,会返回到1.aspx。
5、self.location,和下面的top.location有小小区别

<script language="JavaScript">
  self.location='target.aspx';
</script>

6、top.location

<script language="javascript">
  top.location='target.aspx';
</script>

7、$(window).attr('location',_ctx+"/app/interface/appLoad");

8、不推荐这种方式跳转

<script language="javascript">
  alert("返回");
  window.history.back(-1);
</script>

9、meta方式实现跳转(content = 3 单位是秒)

<meta http-equiv=refresh content=20;URL="http://www.wyxg.com">
//2隔20秒后跳转到http://www.wyxg.com页面

区分null0undefinedfalse  

typeof(undefined) == 'undefined' 

typeof(null) == 'object'

typeof("") == 'string'

typeof(0) == 'number'

typeof(false) == 'boolean'

这五个值的共同点是,在if语句中做判断,都会执行false分支。当然从广义上来看,是说明这些数值都是其对应数据类型上的无效值或空值。还有这五个值作!运算,结果全为:true。

它们到String的转换关系是:

  • String(undefined)   ->   "undefined"
  • String(null)             ->   "null"
  • String("")                     ->   ""
  • String(0)                      ->   "0"
  • String(false)                ->   "false"
for (var i = 0; i < data.rows.length; i++) {
var status = -1; //-1无意义,只是不影响状态的判断
if(typeof(data.rows[i].invoiceStatus) == 'number'){
  status = data.rows[i].invoiceStatus;
     if (status == 0 || status == 1 || status == 3 || status == 6 || status == 7 ||status == 8 || status == 9 ||
       status == 12||status == 13 || status == 14) {
$("input[type='checkbox']")[i + 1].disabled = true;
}
}
}

获取当前日期时间“yyyy-MM-dd HH:MM:SS”  

//法一
function getNowFormatDate() {
  var date = new Date();
  var seperator1 = "-";
  var seperator2 = ":";
  var month = date.getMonth() + 1;
  var strDate = date.getDate();
  if(month >= 1 && month <= 9) {
    month = "0" + month;
  }
  if(strDate >= 0 && strDate <= 9) {
    strDate = "0" + strDate;
}
var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate + " " +
date.getHours() + seperator2 + date.getMinutes() +seperator2 + date.getSeconds();
document.getElementById("info1").innerHTML = currentdate;
return currentdate;
}

//法二
function time() {
  var now = new Date();
  var year = now.getFullYear();
  var month = now.getMonth();
  var date = now.getDate();
  var hour = now.getHours();
  var minite = now.getMinutes();
  var second = now.getSeconds();
  var seperator1 = "-";
  var seperator2 = ":";
  document.getElementById("info1").innerHTML = year + seperator1 + (month + 1) + seperator1 + date + " " + hour +
                           seperator2 + minite + seperator2 + second;
}

复制到剪切板(app)

function codeCopy() {
  if (navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)) {//区分iPhone设备
    window.getSelection().removeAllRanges();//这段代码必须放在前面否则无效
    var Url2=document.getElementById("groomCode");//要复制文字的节点
    var range = document.createRange();
    range.selectNode(Url2);// 选中需要复制的节点
    window.getSelection().addRange(range);// 执行选中元素
    var successful = document.execCommand('copy');// 执行 copy 操作
    window.getSelection().removeAllRanges();// 移除选中的元素
    popTxt('复制成功');
  }else{
    var code=document.getElementById("groomCode").innerText;
    var input = document.createElement("input");
    input.value = code;
    document.body.appendChild(input);
    input.select();
    input.setSelectionRange(0, input.value.length), document.execCommand('Copy');
    document.body.removeChild(input);
    popTxt('复制成功');
  }
}

复制到剪切板(pc)

function copy(v) {
  var code = $("#andIOSEntSignAddress").val();//要复制文字
  var input = document.createElement("input");
  input.value = code;
  document.body.appendChild(input);
  input.select();
  input.setSelectionRange(0, input.value.length), document.execCommand('Copy');
  document.body.removeChild(input);
  layer.msg("复制成功", {icon : 1});
}

判断是否是移动设备打开,判断ios系统还是android系统

var browser = {
  versions: function () {
    var u = navigator.userAgent, app = navigator.appVersion;
    return { //移动终端浏览器版本信息
      trident: u.indexOf('Trident') > -1, //IE内核
      presto: u.indexOf('Presto') > -1, //opera内核
      webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核
      gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核
      mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端
      ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
      android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或uc浏览器
      iPhone: u.indexOf('iPhone') > -1, //是否为iPhone或者QQHD浏览器
      iPad: u.indexOf('iPad') > -1, //是否iPad
      webApp: u.indexOf('Safari') == -1 //是否web应该程序,没有头部与底部
    };
  }(),
  language: (navigator.browserLanguage || navigator.language).toLowerCase()
} if (browser.versions.mobile) {//判断是否是移动设备打开
  var ua = window.navigator.userAgent.toLowerCase();
  if (ua.match(/MicroMessenger/i) == "micromessenger") {//在微信中打开
    if(ua.indexOf("android")!=-1){
      //安卓系统
    }else {
      //ios系统
    }
  }
  if (ua.match(/WeiBo/i) == "weibo") {
    //在新浪微博客户端打开
  }
  if (browser.versions.ios) {
    //是否在IOS浏览器打开
  }
  if(browser.versions.android){
    //是否在安卓浏览器打开
  }
} else {
  //否则就是PC浏览器打开
}

微信内置浏览器浏览H5页面弹出的键盘遮盖文本框的解决办法

window.addEventListener("resize", function () {
  var widthBody = document.body.clientWidth
  var heightBody = widthBody*1.77
  if (document.activeElement.tagName == "INPUT" || document.activeElement.tagName == "TEXTAREA") {
    window.setTimeout(function () {
      $('body').css("height",heightBody)
      document.activeElement.scrollIntoViewIfNeeded();
    }, 0);
  }else{
    $('body').css("height","100%")
  }
});

刷新页面  

  1. history.go(0)
  2. location.reload()
  3. location=location
  4. location.assign(location)
  5. document.execCommand('Refresh')
  6. window.navigate(location)
  7. location.replace(location)
  8. document.URL=location.href
//定时刷新
$(document ).ready(function(){
searchData();
setTimeout('myRefresh()', 2000);//2秒刷新一次
});
function myRefresh() {
//window.location.reload();
searchData();
$.getJSON("<c:url value='/signup/isSignupComplete.do'/>",{ ranNum : Math.random()},
function(result){
  if(result.totalNum == 0){
  setTimeout('myRefresh()', 2000);//2秒刷新一次
} else if(result.totalNum == 1){
window.location.href="http://www.baidu.com";
}
});
} //自动刷新
1.把如下代码加入<head>区域中
<meta http-equiv="refresh" content="20"> //每隔20秒刷新一次页面.
2.页面自动刷新js版
<mce:script language="JavaScript">
  function myrefresh(){
    window.location.reload();
  }
  setTimeout('myrefresh()',1000); //指定1秒刷新一次
</mce:script>

获取data-*属性值

//需要获取的就是data-id 和 dtat-vice-id的值
<li id="getId" data-id="122" data-vice-id="11">获取id</li>

一:getAttribute()方法

const getId = document.getElementById('getId');
//getAttribute()取值属性
console.log(getId.getAttribute("data-id"));//122
console.log(getId.getAttribute("data-vice-id"));//11
//setAttribute()赋值属性
getId.setAttribute("data-id","48");
console.log(getId.getAttribute("data-id"));//48

二:dataset()方法

//data-前缀属性可以在JS中通过dataset取值,更加方便
console.log(getId.dataset.id);//112
//data-vice-id连接取值使用驼峰命名法取值
console.log(getId.dataset.viceId);//11 //赋值
getId.dataset.id = "113";//113
getId.dataset.viceId--;//10 //新增data属性
getId.dataset.id2 = "100";//100 //删除,设置成null,或者delete
getId.dataset.id2 = null;//null
delete getId.dataset.id2;//undefind

三:jquery   data()方法

var id = $("#getId").data("id"); //122
var viceId = $("#getId").data("vice-id"); //11
//赋值
$("#getId").data("id","100");//100

四:jquery   attr()方法

var id = $("#getId").attr("data-id"); //122
var viceId = $("#getId").attr("data-vice-id"); //11
//赋值
$("#getId").attr("data-id","100");//100

JS小整理的更多相关文章

  1. js小功能整理

    /** * 判断是否包含字符串某字符串 * @param {[type]} str [被检测的字符串] * @param {[type]} substr [检测是否含有的字符串] * @return ...

  2. 第24篇 js小知识和“坑”

    前面说了说了js的相关知识,基本上除了语法外,把项目常用的知识做了一个梳理,现在说下js的其它方面的知识,这些知识不成体系,属于不理解对于一般开发没什么太多影响,但如果理解清楚,可以更好去开发. js ...

  3. React.js 小书介绍

    React.js 小书 Github 关于作者 这是一本关于 React.js 的小书. 因为工作中一直在使用 React.js,也一直以来想总结一下自己关于 React.js 的一些知识.经验.于是 ...

  4. [转载]Js小技巧||给input type=“password”的输入框赋默认值

    http://www.cnblogs.com/Raywang80s/archive/2012/12/06/2804459.html [转载]Js小技巧||给input type="passw ...

  5. 常用js方法整理common.js

    项目中常用js方法整理成了common.js var h = {}; h.get = function (url, data, ok, error) { $.ajax({ url: url, data ...

  6. 一些js小题(一)

    一些js小题,掌握这些对于一些常见的面试.笔试题应该很有帮助: var a=10; function aa(){ alert(a); } function bb(){ aa(); } bb();//1 ...

  7. 项目中常用js方法整理common.js

    抽空把项目中常用js方法整理成了common.js,都是网上搜集而来的,大家一起分享吧. var h = {}; h.get = function (url, data, ok, error) { $ ...

  8. 一个js小游戏----总结

    花了大概一天左右的功夫实现了一个js小游戏的基本功能,类似于“雷电”那样的小游戏,实现了随即怪物发生器,碰撞检测,运动等等都实现了,下一个功能是子弹轨迹,还有其他一些扩展功能,没有用库,也没有用web ...

  9. React.js小书总结

    (迁移自旧博客2017 08 27) 第一阶段 react的组件相当于MVC里面的View. react.js 将帮助我们将界面分成了各个独立的小块,每一个块就是组件,这些组件之间可以组合.嵌套,就成 ...

随机推荐

  1. Selenium执行JavaScript脚本

    JavaScript是运行在客户端(浏览器)和服务器端的脚本语言,允许将静态网页转换为交互式网页.可以通过 Python Selenium WebDriver 执行 JavaScript 语句,在We ...

  2. mysql锁类型

    mysql锁类型 问题 都有哪些锁 锁与隔离级别的关系 sql语句中涉及都涉及哪些锁 事务中,锁何时释放 死锁检测机制 概要

  3. linux下hue的安装与部署

    一.Hue 简介 Hue是一个开源的Apache Hadoop UI系统,最早是由Cloudera Desktop演化而来,由Cloudera贡献给开源社区,它是基于Python Web框架Djang ...

  4. flume集成hdfs(hdfs开启kerberos认证)

    )当 sink 到 hdfs 时: ) 需修改 flume-env.sh 配置,增添 hdfs 依赖库: FLUME_CLASSPATH="/root/TDH-Client/hadoop/h ...

  5. slice,splice,split,unshift的用法

    工作了很久始终对这4个用法处于混淆状态,今天写个帖子来警示下自己 // slice(start,end),从start值开始截取到end前的元素组成新的数组,不改变原数组 // slice(index ...

  6. JS 学习 一

  7. [Java基础]——String类

    此篇博客主要整理Java中的String类的使用. 一.String    1.1  String 的定义 上图是jdk中对String类的定义,得到的信息有: ①.String类声明为final的, ...

  8. MySQL45讲:一条update语句是怎样执行的

    首先创建一张表: create table T(ID int primary key,c int); 如果要更新ID=2这行+1:应该这样写 update T set c=c+1 where ID=2 ...

  9. Centos 7 杂章

    CentOS-7-x86_64-DVD-2003.iso 下载地址: http://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-DV ...

  10. LeetCode589. N叉树的前序遍历

    题目 法一.递归 1 class Solution { 2 public: 3 vector<int>ans; 4 void dfs(Node* root){ 5 if(root!=NUL ...