实用JS代码

时间:2023-01-26 18:22:27

浏览器功能

1.0 浏览器判断

如下代码判断是手机还是电脑访问的网站

 function IsPC () {

   var userAgentInfo = navigator.userAgent

   var Agents = ['Android', 'iPhone', 'SymbianOS', 'Windows Phone', 'iPad', 'iPod']

   var flag = true

   for (var i = 0; i < Agents.length; i++) {

     if (userAgentInfo.indexOf(Agents[i]) > 0) {

       flag = false

       break

     }

   }

   return flag

 }

判断IE,微信,安卓

 // ie浏览器

 function isIE () {

   var userAgent = navigator.userAgent

   return userAgent.indexOf('compatible') > -1 && userAgent.indexOf('MSIE') > -1 && !isOpera

 }

 // 微信浏览器

 function isWeiChat () {

   var userAgent = navigator.userAgent

   return userAgent.toLowerCase().indexOf('micromessenger') > -1 // 微信浏览器

 }

 // 是否是安卓

 function isAndroid () {

   var userAgent = navigator.userAgent

   return userAgent.indexOf('Android') > -1 || userAgent.indexOf('Adr') > -1

 }

具体信息

 function BrowserType () {

   var userAgent = navigator.userAgent

   var isOpera = userAgent.indexOf('Opera') > -1

   var isIE = userAgent.indexOf('compatible') > -1 && userAgent.indexOf('MSIE') > -1 && !isOpera

   var isEdge = userAgent.indexOf('Edge') > -1

   var isFF = userAgent.indexOf('Firefox') > -1

   var isSafari = userAgent.indexOf('Safari') > -1 && userAgent.indexOf('Chrome') == -1

   var isChrome = userAgent.indexOf('Chrome') > -1 && userAgent.indexOf('Safari') > -1

   if (isIE) {

     var reIE = new RegExp('MSIE (\\d+\\.\\d+);').test(userAgent)

     var fIEVersion = parseFloat(RegExp['$1'])

     if (fIEVersion === 7) {

       return 'IE7'

     } else if (fIEVersion === 8) {

       return 'IE8'

     } else if (fIEVersion === 9) {

       return 'IE9'

     } else if (fIEVersion === 10) {

       return 'IE10'

     } else if (fIEVersion === 11) {

       return 'IE11'

     } else {

       return null //IE版本过低

   }

   if (isFF) {

     return 'FF'

   } else if (isOpera) {

     return 'Opera'

   } else if (isSafari) {

     return 'Safari'

   } else if (isChrome) {

     return 'Chrome'

   } else if (isEdge) {

     return 'Edge'

   }

 }

1.1 复制黏贴

完成复制功能

 // 复制

 function copy () {

  var input = document.getElementById('input')

  input.select()

  document.execCommand('Copy')

 }

 document.execCommand('SelectAll') // 打开

 document.execCommand('SaveAs') // 另存为

 document.execCommand('Print') // 打印

 document.execCommand('Cut', 'false', null) // 剪切
1.2 页面宽高
用如下代码
 document.body.clientWidth // 网页可见区域宽

 document.body.clientHeight // 网页可见区域高

 document.body.offsetWidth // 网页可见区域宽 (包括边线的宽)

 document.body.offsetHeight // 网页可见区域高 (包括边线的高)

 document.body.scrollWidth // 网页正文全文宽

 document.body.scrollHeight // 网页正文全文高

 document.body.scrollTop // 网页被卷去的高

 document.body.scrollLeft // 网页被卷去的左

 window.screenTop // 网页正文部分上

 window.screenLeft // 网页正文部分左

 window.screen.height // 屏幕分辨率的高

 window.screen.width // 屏幕分辨率的宽

 window.screen.availHeight // 屏幕可用工作区高度

 window.screen.availWidth // 屏幕可用工作区宽度
1.3 cookie

js操作cookie

 // 设置cookies

 function setCookie (op) {

   var key = op.key

   var value = op.value

   var time = op.time || 2 * 24 * 60 * 60 * 1000 // 默认2天

   var url = op.url ? ';path=/;domain=.' + op.url : ''

   var exp = new Date()

   exp.setTime(exp.getTime() + time)

   document.cookie = key + '=' + escape(value) + ';expires=' + exp.toGMTString() + url

 }

 // 获取cookies

 function getCookie (key) {

   if (typeof key === 'string') {

     return getOne(key)

   } else if (key instanceof Array) {

     var cookie = {}

     key.forEach(function (item) {

       cookie[item] = getOne(item)

     })

     return cookie

   }

   function getOne (name) {

     var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)')

     var arr = document.cookie.match(reg)

     if (arr) return unescape(arr[2])

     return null

   }

 }

 // 移除Cookie

 function removeCookie (key) {

   var exp = new Date()

   exp.setTime(exp.getTime() - 1)

   var value = getCookie(key)

   if(value != null) document.cookie = key + "=" + value + ";expires=" + exp.toGMTString()

 }
 setTimeout(function(a){console.log(a)}, 2000, 'done');//done
//setTimeout用法,setTimeout(回调函数,时间,参数1,...,参数n)。

实用JS代码的更多相关文章

  1. 实用js代码大全

    实用js代码大全 //过滤数字 <input type=text onkeypress="return event.keyCode>=48&&event.keyC ...

  2. JavaScript学习总结(10)——实用JS代码大全

    事件源对象  event.srcElement.tagName  event.srcElement.type 捕获释放  event.srcElement.setCapture();   event. ...

  3. 实用的JS代码段(表单篇)

    整理了下比较实用的Javascript代码段,完整的代码参考 1 多个window.onload方法 由于onload方法时在页面加载完成后,自动调用的.因此被广泛的使用,但是弊端是只能实用onloa ...

  4. 实用在线小工具 -- JS代码压缩工具

        实用在线小工具 -- JS代码压缩工具 将JS代码进行压缩可以减少内存占用,下面链接是一个在线JS代码压缩工具,它将多余的空格和换行符压缩了. JS代码压缩工具链接:http://jspack ...

  5. 让JS代码Level提升的忍者秘籍&lpar;实用&rpar;

    本文章共2377字,预计阅读时间5-10分钟. 前言 没有前言. 你准备好成为同事眼中深藏不露.高深莫测.阳光帅气的前端开发了吗? 那就开始吧! 本文秉承宗旨:代码实用与逼格并存. 提升JS代码Lev ...

  6. 超级实用且不花哨的js代码大全

    事件源对象 event.srcElement.tagName event.srcElement.type 捕获释放 event.srcElement.setCapture(); event.srcEl ...

  7. &lpar;转&rpar;超级实用且不花哨的js代码大全

    事件源对象 event.srcElement.tagName event.srcElement.type 捕获释放 event.srcElement.setCapture();  event.srcE ...

  8. 最新的JavaScript核心语言标准&mdash&semi;&mdash&semi;ES6,彻底改变你编写JS代码的方式!【转载&plus;整理】

    原文地址 本文内容 ECMAScript 发生了什么变化? 新标准 版本号6 兑现承诺 迭代器和for-of循环 生成器 Generators 模板字符串 不定参数和默认参数 解构 Destructu ...

  9. 中国省市 JS代码

    很实用的一段JS代码, 用户注册的时候,选择地址常用到.代码如下: <script language="javascript"> var g_selProvince; ...

随机推荐

  1. oracle11g 连接问题

    一.The Network Adapter could not establish the connection  状态: 失败 -测试失败: IO 错误: The Network Adapter c ...

  2. poj 3463 最短路与次短路的方案数求解

    Sightseeing Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 8968   Accepted: 3139 Descr ...

  3. Linux中安装和使用rz、sz命令

    安装命令: yum install lrzsz 从服务端发送文件到客户端: sz filename 从客户端上传文件到服务端: rz在弹出的框中选择文件,上传文件的用户和组是当前登录的用户 Secur ...

  4. &lbrack;SHELL实例&rsqb; (转)最牛B的 Linux Shell 命令 (一)

    本文编译自commandlinefu.com ( 应该是 Catonmat ) 的系列文章 Top Ten One-Liners from CommandLineFu Explained .作为一个由 ...

  5. 多字符集&lpar;ANSI&rpar;和UNICODE及字符串处理方式准则

    在我们编写程序的时候,使用最多的是字符串的处理,而ANSI和UNICODE的相互转换经常搞的我们头晕眼乱. 应该说UNICODE是一种比较好的编码方式,在我们的程序中应该尽量使用UNICODE编码方式 ...

  6. Scope 功能的改进

    前段时间发表了一篇文章 面向对象的一小步:添加 ActiveRecord 的 Scope 功能 提到一种更加友好的方式做数据库查询.经小伙伴的建议,在满足同样条件下,可以有更为简洁的封装方法. 这需要 ...

  7. LabVIEW编程实例:如何通过TCP协议进行数据通信

    对于网络通信来说,LabVIEW平台本身提供了多种方法加以实现,如可以通过TCP协议.UDP协议.DataSocket技术.甚至远程面板通信技术等方式进行通信. 下面通过一个简单的例子,演示在LabV ...

  8. Union and Intersection of two sorted lists 并集和交集

    跟面试官确认是arrayList还是singly-linked list /*  Union 并集:两个升序的list a, b, 返回其并集(升序排序)*/ public class UnionTw ...

  9. Atitit 路径规划法attilax总结 扫描线路法

    Atitit 路径规划法attilax总结 扫描线路法 2017/2/8 20:43:37[吐槽]深圳-小 2017/2/8 20:43:37 群主做什么的2017/2/10 10:03:15系统消  ...

  10. Docker学习--docker的基本认识

    1.Docker 架构 Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器. Docker 容器通过 Docker 镜像来创建. 容器与镜像的关系类似于 ...