【总结】web工作代码分类整理(持续更新)

文件、blob

文件下载失败,将Blob对象转换为Json,处理异常错误?

使用FileReader,核心代码:

var reader = new FileReader()
reader.onload = e => console.log(JSON.parse(e.target.result))
reader.readAsText(blob)

捕获异常:

/** 捕获导出文件流数据接口错误
 * @param {String} res接口返回信息 正常:文件流 错误:错误信息
 * */
function catchDonwnloadError(res){
  let result = {};
  return new Promise((resolve,reject) => {
      let reader = new FileReader();
      reader.onload = e => {
        try{
                        //根据后端返回的JSON对象还是JSON字符串做处理
                        if(typeof e.target.result === 'object'){
                            result = e.target.result;
                        }
            result = JSON.parse(e.target.result);
          }finally{
            if(typeof result.status !== 'undefined'){
                            //element-ui错误提示组件
              this.$message({
                message: result.message,
                type: 'error',
                duration: 5 * 1000
              });
              reject();
            }
            resolve();
          }
      }
            //返回文件流为blob格式使用readAsText  arraybuffer格式使用readAsArrayBuffer
      reader.readAsText(res.data);
  })
}

调用方式:

 this.donwnloadError(result).then(() => {
  //导出文件成功后的操作
  this.result=result;
})

问题地址:处理文件下载失败,如何将Blob对象转换为Json?

《参考:FileReader》

设置二级域名cookie共享

也即是把cookie的domain设置为顶级域名。

function getdomain(){
    var domain = document.domain;
    var ip = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;
    if(ip.test(domain)){
        return domain;
    }else{
        return document.domain.split('.').slice(1).join('.');
    }
}
var firstDomainName = getdomain();
document.cookie="userid=888abc;domain="+firstDomainName+";path=/";

其它

获取IE浏览器版本

function IEVersion(){
      var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
    var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1; //判断是否IE<11浏览器
    var isEdge = userAgent.indexOf("Edge") > -1 && !isIE; //判断是否IE的Edge浏览器
    var isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf("rv:11.0") > -1;
    if(isIE) {
        userAgent.match(/MSIE (\d+\.\d+);/g);
        var fIEVersion = parseFloat(RegExp["$1"]);
        if(fIEVersion == 7) {
            return 7;
        } else if(fIEVersion == 8) {
            return 8;
        } else if(fIEVersion == 9) {
            return 9;
        } else if(fIEVersion == 10) {
            return 10;
        } else {
            return 6;//IE版本<=7
        }
    } else if(isEdge) {
        return 'edge';//edge
    } else if(isIE11) {
        return 11; //IE11
    }else{
        return -1;//不是ie浏览器
    }
}

JS跳转到app store内应用下载页面

跳转到应用商店:

(https)|(itms-apps)://itunes.apple.com/app/id{appID}

跳转到撰写评价:

(https)|(itms-apps)://itunes.apple.com/app/id{appID}?action=write-review

跳转到查看评价:

(https)|(itms-apps)://itunes.apple.com/app/viewContentsUserReviews?id={appID}

手机端和pc端均可适用。

示例代码:

window.location.href = 'itms-apps://itunes.apple.com/app/id414478124?action=write-review'

 h5 JS判断是安卓还是ios设备,跳转到对应的下载地址

;(function(){
    var u = navigator.userAgent;
    var ua = navigator.userAgent.toLowerCase();
    var dom = document.getElementById('btn');
    var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
    var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
    if(ua.match(/MicroMessenger/i)=="micromessenger") {   //微信内置浏览器
        dom.addEventListener('touchstart', function (event) {
        
        },false); }else{ if(isiOS){ dom.addEventListener('touchstart', function (event) { //跳转到ios下载地址(示例:微信app) window.location.href='itms-apps://itunes.apple.com/app/id414478124'; },false); } else if(isAndroid){ dom.addEventListener('touchstart', function (event) { window.location.href='http://www.XXX.com/apk/demo.apk'; },false); }else{ //PC 端 dom.addEventListener('click',function(){ //跳转到andriod下载地址 window.location.href='http://www.XXX.com/apk/demo.apk'; },false); } } })();

猜你喜欢

转载自www.cnblogs.com/moqiutao/p/11449010.html