让前端飞前端是万能的

PDF.JS 异常处理

2018-10-10  本文已影响3人  肆意木

PDF.js 具体用法前面有写过,今天记录一下异常处理,我的 viewer.html 后面跟着的地址是服务器返回的地址然后用一个 iframe 标签加载,有时可能服务器发生异常,也可能打开瞬间被异地删除,再或者没有网络....

异常处理是在 pdf.js 的源码中增加代码,大约6287行,onStateChange 方法中监听:

onStateChange: function NetworkManger_onStateChange(xhrId, evt){
    ...
    ...
    ...
delete this.pendingRequests[xhrId];
/*我是与后台协商,异常返回450,其它返回的状态码还没有增加处理*/
if(xhr.status === 0 && this.isHttp) {
    var eventClick = documet.createEvent('HTMLEvents');
    eventClick.initEvent('notNet',false,false);
    window.dispatchEvent(eventClick);
    return;
}else if(chr.status === 450){
   var eventClick = documet.createEvent('HTMLEvents');
    eventClick.initEvent('fileErr',false,false);
    window.dispatchEvent(eventClick);
}
  ...
  ...
  ...
}

调用 iframe 标签的文件增加监听:

   iframe.addEventListener('notNet',function(){
       console.log("网络异常")
   });
   iframe.addEventListener('fileErr',function(){
      console.log("服务器异常")
  })
上一篇下一篇

猜你喜欢

热点阅读