zoukankan      html  css  js  c++  java
  • 获取浏览器数据

    1.从其他项目跳转到本项目,在本项目下获取项目跳转来源url

    document.referrer

    但是也有不可使用的情况

    1. 直接在浏览器地址栏中输入地址;
    2. 使用location.reload()刷新(location.href或者location.replace()刷新有信息);
    3. 在微信对话框中,点击链接进入微信自身的浏览器;
    4. 扫码进入QQ或者微信的浏览器;
    5. 直接新窗口打开一个页面; 2017.8.3更新 新版本Chrome测试,新窗口页面依然有document.referrer
    6. 从https的网站直接进入一个http协议的网站(Chrome下亲测);
    7. a标签设置rel="noreferrer"(兼容IE7+);
    8. meta标签来控制不让浏览器发送referer

    2.获取访问IP、地区、浏览器以及电脑操作系统

    • 在index.html中添加搜狐接口的引用<script src="http://pv.sohu.com/cityjson?ie=utf-8"></script>
    • 在js中获取本地id 
    • sessionStorage.setItem('ip', returnCitySN["cip"])
          sessionStorage.setItem('area', returnCitySN["cname"])

    3.新建js文件systemTool.js

    // get brower
    export function GetCurrentBrowser () {
      let ua = navigator.userAgent.toLocaleLowerCase()
      let browserType = null
      if (ua.match(/msie/) != null || ua.match(/trident/) != null) {
        browserType = 'IE'
      } else if (ua.match(/firefox/) != null) {
        browserType = 'firefox'
      } else if (ua.match(/ucbrowser/) != null) {
        browserType = 'UC'
      } else if (ua.match(/opera/) != null || ua.match(/opr/) != null) {
        browserType = 'opera'
      } else if (ua.match(/bidubrowser/) != null) {
        browserType = 'baidu'
      } else if (ua.match(/metasr/) != null) {
        browserType = 'sougou'
      } else if (ua.match(/tencenttraveler/) != null || ua.match(/qqbrowse/) != null) {
        browserType = 'QQ'
      } else if (ua.match(/maxthon/) != null) {
        browserType = 'maxthon'
      } else if (ua.match(/chrome/) != null) {
        var is360 = _mime('type', 'application/vnd.chromium.remoting-viewer')
        if (is360) {
          browserType = '360'
        } else {
          browserType = 'chrome'
        }
      } else if (ua.match(/safari/) != null) {
        browserType = 'Safari'
      } else {
        browserType = 'others'
      }
      return browserType
    }
    
    function _mime (option, value) {
      var mimeTypes = navigator.mimeTypes
      for (var mt in mimeTypes) {
        if (mimeTypes[mt][option] === value) {
          return true
        }
      }
      return false
    }
    
    // get os
    export function GetOs () {
      let sUserAgent = navigator.userAgent.toLocaleLowerCase()
      let isWin = (navigator.platform === 'win32') || (navigator.platform === 'windows')
      let isMac = (navigator.platform === 'mac68k') || (navigator.platform === 'macppc') || (navigator.platform === 'macintosh') || (navigator.platform === 'macintel')
      if (isMac) return 'Mac'
      var isUnix = (navigator.platform === 'x11') && !isWin && !isMac
      if (isUnix) return 'Unix'
      var isLinux = (String(navigator.platform).indexOf('linux') > -1)
      if (isLinux) return 'Linux'
      if (isWin) {
        var isWin2K = sUserAgent.indexOf('windows nt 5.0') > -1 || sUserAgent.indexOf('windows 2000') > -1
        if (isWin2K) return 'Win2000'
        var isWinXP = sUserAgent.indexOf('windows nt 5.1') > -1 || sUserAgent.indexOf('windows xp') > -1
        if (isWinXP) return 'WinXP'
        var isWin2003 = sUserAgent.indexOf('windows nt 5.2') > -1 || sUserAgent.indexOf('windows 2003') > -1
        if (isWin2003) return 'Win2003'
        var isWinVista = sUserAgent.indexOf('windows nt 6.0') > -1 || sUserAgent.indexOf('windows vista') > -1
        if (isWinVista) return 'WinVista'
        var isWin7 = sUserAgent.indexOf('windows nt 6.1') > -1 || sUserAgent.indexOf('windows 7') > -1
        if (isWin7) return 'Win7'
      }
      if (sUserAgent.indexOf('android') > -1) return 'Android'
      if (sUserAgent.indexOf('iphone') > -1) return 'iPhone'
      if (sUserAgent.indexOf('symbianos') > -1) return 'SymbianOS'
      if (sUserAgent.indexOf('windows phone') > -1) return 'Windows Phone'
      if (sUserAgent.indexOf('ipad') > -1) return 'iPad'
      if (sUserAgent.indexOf('ipod') > -1) return 'iPod'
      return 'others'
    }
    
    // getAddress
    // {/*<script src="http://pv.sohu.com/cityjson?ie=utf-8"></script>*/}
    // {/*export function GetAddress () {*/}
    //   {/*return returnCitySN*/}
    // {/*}*/}
    

      

    • 使用。在你需要用的vue组件中引用上一步js文件
    • import * as sysTool from '../assets/js/systemTool'
    • 在data里
    • data () {
        return {
            ip: '1.1.1.1',
            area: '北京市',
            brower: 'chrome',
            os: 'windows7'
        }
      }

      在具体函数中使用

    •  this.ip = sessionStorage.getItem('ip')
                this.area = sessionStorage.getItem('area')
                this.brower = sysTool.GetCurrentBrowser()
                this.os = sysTool.GetOs()
                console.log('ip,地区,浏览器,操作系统,:',  this.ip, this.area,this.brower, this.os)
      

        

     

  • 相关阅读:
    383. Ransom Note
    598. Range Addition II
    453. Minimum Moves to Equal Array Elements
    492. Construct the Rectangle
    171. Excel Sheet Column Number
    697. Degree of an Array
    665. Nondecreasing Array
    视频网站使用H265编码能提高视频清晰度吗?
    现阶段的语音视频通话SDK需要解决哪些问题?
    企业远程高清会议平台视频会议系统在手机端使用的必备要求有哪些?
  • 原文地址:https://www.cnblogs.com/zyx-blog/p/15222024.html
Copyright © 2011-2022 走看看