javascript - 没有互联网时如何显示自定义错误消息

标签 javascript html angularjs

输入一些值后,当用户断开互联网连接并尝试执行任何操作时。我的应用程序没有显示任何错误消息“没有互联网连接” 在控制台中它正在抛出

angular_1.3.13.js:11613 类型错误:无法读取 null 的属性“错误” 在 Object.handleError (apiHelper.js:120) 在 shortnoteCreateController.js:88 在 angular_1.3.13.js:9382 在 processQueue (angular_1.3.13.js:13195) 在 angular_1.3.13.js:13211 在 Scope.$eval (angular_1.3.13.js:14407) 在 Scope.$digest (angular_1.3.13.js:14223) 在 Scope.$apply (angular_1.3.13.js:14512) 完成时(angular_1.3.13.js:9665) 在 completeRequest (angular_1.3.13.js:9855)

已处理以下代码中的错误。

this.handleError = function(status, data) {

        if (status == URLs.unauthorizedCode && address.location.hash != "#/login") {
            var userdet = this.getUserDetailsFromServer(URLs.HTTP_GET, URLs.requestheaders);
            userdet.success(function(data) {
                //navigate to login page when unauthorized operations performed
                //its a rare case of getting permission reverted by PA when in action
                //or if logged out in another tab or logged in as another user in another tab
                //localStorageService.set('successmsg', 'You have been prevented from an unauthorized access');
                 displayResult.showErrorResults(Constants.authorizationFailureMsg,'success');
                address.location.href = URLs.loginView;
                //address.location.reload();
                //console.info("in handle error auth fail");

            });
            userdet.error(function(data) {
                localStorageService.set('successmsg', 'You have been prevented from an unauthorized access');

                localStorageService.clearAll();
                address.location.href = URLs.loginView;
                address.location.reload();
                displayResult.showErrorResults(Constants.authorizationFailureMsg,'success');
                //console.info("in handle error auth fail");

            });
        } else if(status == URLs.notFoundCode){
            address.location.href = URLs.notFoundPage;
        }else {

            $rootScope.rs_error_status = status;
            //console.log("inside apihelper", data);
            if (data.error) {
                $rootScope.rs_error_data = data;
                //console.info("in error");
            } else if (data.errors) {
                //console.info("in errors");
                $rootScope.rs_error_data = data.errors;
            }
            var modalInstance = $modal.open({
                templateUrl : 'userinterface/pages/modal/errordialog.html',
                controller : 'modalController'
            });

            modalInstance.result.then(function() {
                //console.info("Exiting modal popup");
            }, function() {
            });

        }

最佳答案

您可以使用 navigator.onLine对于在线和离线返回 bool 值 true/false

您还可以将在线/离线事件附加到窗口

window.addEventListener('offline', (e)=> { //code here});

window.addEventListener('online', (e) => { //some code here});

关于javascript - 没有互联网时如何显示自定义错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54527988/

相关文章:

javascript - 如果满足条件,如何更改 div 中每个 p 的颜色?

javascript - 尝试在不同时间运行多个 kue 作业,但它们同时启动

javascript - 表搜索 Javascript 和 jQuery CSS

html - 为什么元素在 jquery-ui sortable 中重叠底部边框?

html - 调整窗口大小时按钮移动

javascript - AngularJS http.post 与 cherrypy

javascript - 使用 Angularjs 将地址数据从数据库加载到谷歌地图中

JavaScript map 文件在 Firefox 中不起作用

javascript - 如何将表单提交到页面,以便该新页面在新窗口(而不是新选项卡)中打开?

javascript - 我怎样才能让 AngularJS 绑定(bind)与花式框对话框一起工作?