//获取浏览器和版本号
var userAgent=window.navigator.userAgent,
rMsie=/(msie\s|trident.*rv:)([\w.]+)/,
rFirefox=/(firefox)\/([\w.]+)/,
rOpera=/(opera).+version\/([\w.]+)/,
rChrome=/(chrome)\/([\w.]+)/,
rSafari=/version\/([\w.]+).*(safari)/;
function uaMatch(ua)
{
var match=rMsie.exec(ua);
if(match != null)
{
return {browser:"IE",version:match[2] || "0"};
}
var match=rFirefox.exec(ua);
if(match != null)
{
return {browser:match[1] || "",version:match[2] || "0"};
}
var match=rOpera.exec(ua);
if(match != null)
{
return {browser:match[1] || "",version:match[2] || "0"};
}
var match=rChrome.exec(ua);
if(match != null)
{
return {browser:match[1] || "",version:match[2] || "0"};
}
var match=rSafari.exec(ua);
if(match != null)
{
return {browser:match[2] || "",version:match[1] || "0"};
}
if(match != null)
{
return {browser:"",version:"0"};
}
}
var browser="";
var version="";
var browserMatch=uaMatch(userAgent.toLowerCase());
if(browserMatch.browser)
{
browser=browserMatch.browser;
version=browserMatch.version;
}
/*console.log(browser);//浏览器
console.log(version);//版本号*/
var str=browser;
var str2="";
function demo(str){
for(var i=0;i<str.length;i++){
str2+=str.charAt(str.length-i-1);
}
console.log(str+"<br />"+str2)
}
demo(str);
var str3=version;
var str4="";
function demoe(str3){
for(var i=0;i<str3.length;i++){
str4+=str3.charAt(str3.length-i-1);
}
console.log(str3+"<br />"+str4)
}
demoe(str3)
//封装请求头
var head={
'machine-code': str,
'network-code':str3,
'current-time':getNowFormatDate(),
'token':str2+str4+getNowFormatDate(),
}
//console.log(head);打印出来的head

封装的head的更多相关文章

  1. [C#] 简单的 Helper 封装 -- RegularExpressionHelper

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  2. iOS开发之App间账号共享与SDK封装

    上篇博客<iOS逆向工程之KeyChain与Snoop-it>中已经提到了,App间的数据共享可以使用KeyChian来实现.本篇博客就实战一下呢.开门见山,本篇博客会封装一个登录用的SD ...

  3. Ajax实现原理,代码封装

    都知道实现页面的异步操作需要使用Ajax,那么Ajax到是怎么实现异步操作的呢? 首先需要认识一个对象 --> XMLHttpRequest 对象 --> Ajax的核心.它有许多的属性和 ...

  4. 用C语言封装OC对象(耐心阅读,非常重要)

    用C语言封装OC对象(耐心阅读,非常重要) 本文的主要内容来自这里 前言 做iOS开发的朋友,对OC肯定非常了解,那么大家有没有想过OC中NSInteger,NSObject,NSString这些对象 ...

  5. 【知识必备】RxJava+Retrofit二次封装最佳结合体验,打造懒人封装框架~

    一.写在前面 相信各位看官对retrofit和rxjava已经耳熟能详了,最近一直在学习retrofit+rxjava的各种封装姿势,也结合自己的理解,一步一步的做起来. 骚年,如果你还没有掌握ret ...

  6. 对百度WebUploader开源上传控件的二次封装,精简前端代码(两句代码搞定上传)

    前言 首先声明一下,我这个是对WebUploader开源上传控件的二次封装,底层还是WebUploader实现的,只是为了更简洁的使用他而已. 下面先介绍一下WebUploader 简介: WebUp ...

  7. 封装集合(Encapsulate Collection)

    封装就是将相关的方法或者属性抽象成为一个对象. 封装的意义: 对外隐藏内部实现,接口不变,内部实现自由修改. 只返回需要的数据和方法. 提供一种方式防止数据被修改. 更好的代码复用. 当一个类的属性类 ...

  8. CSharpGL(29)初步封装Texture和Framebuffer

    +BIT祝威+悄悄在此留下版了个权的信息说: CSharpGL(29)初步封装Texture和Framebuffer +BIT祝威+悄悄在此留下版了个权的信息说: Texture和Framebuffe ...

  9. CSharpGL(7)对VAO和VBO的封装

    CSharpGL(7)对VAO和VBO的封装 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码中包含10多个独立的Demo,更适合入门参考 ...

  10. Swift -- 对AFN框架的封装

    Swift -- 对AFN框架的封装 一.封装AFN的目的 简单的说: 解耦 日常工作中,我们一般都不会去直接使用AFNetWorking来直接发送网络请求,因为耦合性太强,假设有多个控制器都使用AF ...

随机推荐

  1. vbox安装增强功能,实现宿主机文件夹共享并浏览器访问

    虚拟机版本:6.0.4 r128413 (Qt5.6.2) linux:centos7/6 点击菜单栏中的设备->安装增强功能,再reboot 获取内核版本号 uname -r 查看yum的内核 ...

  2. HBase读写的几种方式(一)java篇

    1.HBase读写的方式概况 主要分为: 纯Java API读写HBase的方式: Spark读写HBase的方式: Flink读写HBase的方式: HBase通过Phoenix读写的方式: 第一种 ...

  3. Teamviewer远程ssh命令行更改密码启动

    Teamviewer远程ssh命令行更改密码启动 设置密码 $ sudo teamviewer passwd [NewPasswd ] 查看teamviewer信息 $ teamviewer info ...

  4. jsonp简介

    jsonp主要是利用script的跨域.简单点说就是像img,css,js这样的文件是跨域的,这也就是为什么我们能够利用cdn进行加速的原因.而且像js这样的文件,如果里面是一个自执行的代码,比如: ...

  5. 使用fetch调用node.js的Resuful服务

    在目前的软件架构中,慢慢又有这样的趋势,就是在前端和业务接口层中间再加入一层,这是由于nodejs相对JAVA而言不适合做复杂的业务逻辑,如下图: 在这样的结构中,JS前端和web层都是前端开发工程师 ...

  6. django2.0无法加载外部css和js的问题

    解决问题的思路来源于https://www.v2ex.com/t/430192 先是创建static目录,该目录与manage.py同级 然后在项目settings.py文件里添加 STATICFIL ...

  7. zabbix3.2监控rabbitmq集群

    监控模板和脚本github地址:https://github.com/jasonmcintosh/rabbitmq-zabbix/tree/master/scripts/rabbitmq .将rabb ...

  8. 11.2.0.4 aix下运行第二个节点root.sh报错处理

    第二个节点运行root.sh报错如下 Entries will be added to the /etc/oratab file as needed by Database Configuration ...

  9. 【原创】大叔经验分享(10)Could not transfer artifact org.apache.maven:maven. from/to central. Received fatal alert: protocol_version

    maven编译工程报错 [ERROR] Failed to execute goal net.alchim31.maven:scala-maven-plugin:3.2.2:add-source (s ...

  10. 在浏览器中查看.vue文件的源码