忽略错误并继续在IE中运行javascript?

时间:2012-02-22 15:27:57

标签: javascript jquery internet-explorer

我的网页上有一个JIT Spacetree,IE不喜欢几行。如果我打开开发人员工具,并告诉它运行它们,它看起来很棒,并按原样加载所有内容。

有什么方法可以让我只是说“你知道什么,这些错误不是真正的交易破坏者,让我们继续前进”?两个进一步缩进的行是违法者,以及jQuery 1.6.4(将尝试1.7.1)中的内容,使用$ .getJSON或$ .parseJSON

    var style = label.style;
        style.width = node.data.offsetWidth;
        style.height = node.data.offsetHeight;            
    style.cursor = 'pointer';
    style.color = '#fff';
    style.fontSize = '0.8em';
    style.textAlign= 'center';
},

6 个答案:

答案 0 :(得分:8)

将有问题的代码包装在try / catch中,并且不要在catch中执行任何操作。

答案 1 :(得分:3)

IE在定义对象时是“过敏的”,并在最后一个属性上留下逗号。

为:

var apple = { color : "yellow",
              taste : "good", };

不可

var apple = { color : "yellow",
              taste : "good" };

答案 2 :(得分:2)

您可以使用try catch语句。

var style = label.style;

try 
{
    style.width = node.data.offsetWidth;
    style.height = node.data.offsetHeight;            
} 
catch(err) { /* do nothing */ }

style.cursor = 'pointer';
style.color = '#fff';
style.fontSize = '0.8em';
style.textAlign= 'center';

答案 3 :(得分:1)

将那些有问题的代码包裹在try { } catch (e) {}块中,你应该好好去...

MDN Reference for try..catch

下面的内容应该对你有用,

var style = label.style;
try {
    style.width = node.data.offsetWidth;
    style.height = node.data.offsetHeight;            
} catch (e) { 
    //do alternate when error   
}
style.cursor = 'pointer';
style.color = '#fff';
style.fontSize = '0.8em';
style.textAlign= 'center';

答案 4 :(得分:0)

你可以使用try ... catch:

try{
    allert('hello'); //Syntax error
}catch(err){
    console.log(err);
}

答案 5 :(得分:0)

如果您知道您的代码可能会遇到错误(无论出于何种原因),您可以通过try / catch捕获并处理错误:

try {
    // Code that is likely to error
} catch(e) {
  // Handle the error here
}

您可以对错误执行任何操作,也可以尝试恢复应用程序。在这种情况下,您可能应该尝试找出IE首先抛出错误的原因,看看是否可以避免必须抑制错误。

进一步阅读: