Javascript 如何在Extjs中捕获脚本错误?
我有一个应用程序有一个选项卡面板,我们可以在其中编写Extjs代码,通过点击按钮,代码的o/p应该显示在预览中。为此,我有一个iFrame,并且正在通过document.write(content)方法更新iFrame,其中content是一个包含Extjs代码的变量 我的要求是,如果在运行js代码时出现任何错误,系统将捕获该错误并显示在预览区域(iframe) 有人知道如何在点击按钮时捕捉错误吗 我已经阅读了w3school的try/catch/finally教程,但它没有帮助,因为我还需要捕捉控制台错误 谢谢Javascript 如何在Extjs中捕获脚本错误?,javascript,extjs4.1,Javascript,Extjs4.1,我有一个应用程序有一个选项卡面板,我们可以在其中编写Extjs代码,通过点击按钮,代码的o/p应该显示在预览中。为此,我有一个iFrame,并且正在通过document.write(content)方法更新iFrame,其中content是一个包含Extjs代码的变量 我的要求是,如果在运行js代码时出现任何错误,系统将捕获该错误并显示在预览区域(iframe) 有人知道如何在点击按钮时捕捉错误吗 我已经阅读了w3school的try/catch/finally教程,但它没有帮助,因为我还需要捕
塔帕斯维尼我找到了解决办法。当然,我们不能在Extjs中实现这一点。我们可以在简单的Javascript window.onerror事件中实现这一点 示例代码:
window.onerror = function(message, url, linenumber) {
var errorbox = document.createElement('div');
errorbox.innerHTML = '<font color = red >'+message+'<br> At line number : '+linenumber+'</font>';
document.body.appendChild(errorbox);
return ;
}
window.onerror=函数(消息、url、行号){
var errorbox=document.createElement('div');
errorbox.innerHTML=''+message+'
在行号:'+linenumber+'';
document.body.appendChild(errorbox);
返回;
}
var varMessage=Ext.MessageBox.show({
消息:“正在启动,请稍候…”,
//标题:“请稍候”,
progressText:“正在保存…”,
animateTarget:'btn1',
进步:没错,
可关闭:错误,
宽度:50,
等等:是的,
waitConfig:{
间隔时间:400,,
期限:2000年,
//增量:2,
文本:“启动…”,
范围:本,,
fn:函数(){
//ajax请求的代码
Ext.Ajax.request({
url:'url',
async:false,
//成功完成url时的代码
成功:功能(响应、选项){
var obj=(response.responseText);
Ext.MessageBox.hide();
//错误处理代码
试一试{
Ext.Msg.alert('状态','请求成功完成');
}捕捉(错误){
Ext.Msg.alert('错误','执行过程中发生了一些错误。
'+err);
}最后{}
//错误处理代码
},
//执行期间是否发生任何错误的代码
故障:功能(响应、选项){
Ext.MessageBox.hide();
Ext.Msg.alert(“错误”,“在服务器上执行时发生了一些问题!”);
}
});
}
}
});
您可以发布您的代码吗?这有助于回答问题。
var varMessage = Ext.MessageBox.show({
msg: 'Initiating, please wait...',
//title: 'Please wait',
progressText: 'Saving...',
animateTarget: 'btn1',
progress: true,
closable: false,
width: 50,
wait: true,
waitConfig: {
interval: 400,
duration: 2000,
//increment: 2,
text: 'Initiating...',
scope: this,
fn: function() {
//Code for ajax request
Ext.Ajax.request({
url: 'url',
async: false,
//Code for if url successfully done
success: function(response, opts) {
var obj = (response.responseText);
Ext.MessageBox.hide();
//Code for error handling
try {
Ext.Msg.alert('Status', 'Request successfully done .');
} catch(err) {
Ext.Msg.alert('Error', 'Some error occured during execution.<br/></br>' + err);
} finally {}
//Code for error handling
},
//Code for if any error occured during execution
failure: function(response, opts) {
Ext.MessageBox.hide();
Ext.Msg.alert("Error", "Some issue occured during execution on server !");
}
});
}
}
});