浏览器功能

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提升的忍者秘籍(实用)

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

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

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

  7. (转)超级实用且不花哨的js代码大全

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

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

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

  9. 中国省市 JS代码

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

随机推荐

  1. drone secret 使用

      drone 的secret 可以让我们方便的对于需要保密的信息的隐藏,减少账户信息的泄密 环境准备 docker-compose 文件 version: '3' services: drone-s ...

  2. android设备兼容性

    原文地址:http://developer.android.com/guide/practices/compatibility.html android被设计成能够在多种不同的设备上执行的系统,为了达 ...

  3. 程序设计实践 (Brian W. Kernighan Rob Pike 著)

    第1章 风格 1.1 名字 1.2 表达式和语句 1.3 一致性和习惯用法 1.4 函数宏 1.5 神秘的数 1.6 注释 1.7 为何如此费心 第2章 算法与数据结构 2.1 检索 2.2 排序 2 ...

  4. 最大值最小值(max,max_element)

    min 如果比不出大小就返回第一个引数 //版本一:调用operator< template <class LessThanComparable> const LessThanCom ...

  5. MEMS 硅麦资料收集

    MEMS 硅麦资料收集 PCM 和 I2S 协议的 MEMS Microphone PCM 协议在蓝牙方面比较多,一般都有 PCM 的接口. MEMS Microphone 更加的省电,更方便用于语音 ...

  6. 【转】类似py2exe软件真的能保护python源码吗

    类似py2exe软件真的能保护python源码吗 背景 最近写了个工具用于对项目中C/C++文件的字符串常量进行自动化加密处理,用python写的,工具效果不错,所以打算在公司内部推广.为了防止代码泄 ...

  7. Linux常用命令之定时任务

    定时任务的实现,可以让我们把很多重复的,有规律的事情交给机器做.我们就不用苦逼的烦躁做同一件事,这样也让我们做程序的有更多的乐趣和价值.用技术的手段解决常人花时间精力解决的问题.在Linux下实现定时 ...

  8. 具有 Button 风格的 Panel

    unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...

  9. Java 可执行jar的manifest编写

    Eclipse:形式, 选中项目右键 命令行形式: 1.编写Java类 2.命令行指定到项目/src文件夹,编译 3.编写manifest文件 4.目录重新定位到bin/classes编译文件目录下, ...

  10. sp_who, sp_who2和sp_who3

    sp_who可以返回如下信息: (可选参数LoginName, 或active代表活动会话数)Spid         (系统进程ID)status      (进程状态)loginame  (用户登 ...