2013-10-17 56 views
0

我有一些简单的代码可以完成这项工作,但会给出一个未被捕获的错误。如何从浏览器隐藏未被捕获的错误?

ck.setMode('source'); 
ck.setMode('wysiwyg'); 

这是给我的留言:

Uncaught TypeError: Cannot read property 'on' of undefined 

我知道这可能是一个不好的做法,但这个错误不会造成任何问题,我想,以避免它显示在浏览器中。有没有什么办法可以将此代码附上,因此它不会提供浏览器控制台警报?

这里的包围上面的代码:

ngModel.$render = function() { 
    if (typeof ngModel.$modelValue != 'undefined') { 
     if (ngModel.$modelValue != null) { 
      ck.setData(ngModel.$modelValue); 
      timer = setTimeout(function() { 
       ck.setData(ngModel.$modelValue); 
      }, 1000); 
      timer = setTimeout(function() { 
       ck.setMode('source'); 
       ck.setMode('wysiwyg'); 
      }, 1000); 
     } 
    } 
}; 
+2

你可以使用'try'和'catch'来捕获错误吗? – Barmar

+1

为什么不修复'setMode()'函数中的错误? – Barmar

+0

这是一个ckEditor函数。我一直在看这个12个小时,但仍然无法看到造成问题的原因:-( –

回答

2

你可以使用这样的代码:

window.onerror = function(message, url, lineNumber) { 
    // maybe some handling? 
    return true; // prevents browser error messages 
}; 

它可以防止所有的错误信息,所以请小心使用。

+0

我增加了一些代码。是来自ckEditor的Angular指令的内部 –

1

你可以把你的代码块放在try catch中。所以你的代码会变成这样。

try { 
    ck.setMode('source'); 
    ck.setMode('wysiwyg'); 
} 
catch (error) { 
    // handle your error 
} 
+0

+1更好地将try/catch块尽可能接近有问题的代码,而不是将所有内容都捕捉到非常高的水平。 – jfriend00

相关问题