【總結】web工做代碼分類整理(持續更新)

文件、blob

文件下載失敗,將Blob對象轉換爲Json,處理異常錯誤?

使用FileReader,核心代碼:android

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

捕獲異常:ios

/** 捕獲導出文件流數據接口錯誤
 * @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);
  })
}

調用方式:element-ui

 this.donwnloadError(result).then(() => {
  //導出文件成功後的操做
  this.result=result;
})

問題地址:處理文件下載失敗,如何將Blob對象轉換爲Json?json

《參考:FileReader》segmentfault

設置二級域名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); } } })();
相關文章
相關標籤/搜索