Игнорировать ошибки и продолжить запуск JavaScript в IE? - PullRequest
6 голосов
/ 22 февраля 2012

У меня есть 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 ]

8 голосов
/ 22 февраля 2012

оберните нарушающий код в try / catch и ничего не делайте в catch.

3 голосов
/ 22 февраля 2012

IE "аллергичен" при определении объекта и оставляет запятую в последнем атрибуте.

Плохо:

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

Хорошо:

var apple = { color : "yellow",
              taste : "good" };
2 голосов
/ 22 февраля 2012

Вы можете использовать оператор 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';
1 голос
/ 22 февраля 2012

Оберните эти оскорбительные коды в блок try { } catch (e) {}, и вы должны быть в порядке.

MDN Ссылка для 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';
0 голосов
/ 22 февраля 2012

Если вы знаете, что ваш код может встретиться с ошибкой (по любой причине), вы можете перехватить и обработать ошибки с помощью try / catch:

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

Вы можете ничего не делать с ошибкой или попытаться восстановить приложение. В этом случае вам, вероятно, следует попытаться выяснить, почему IE в первую очередь выдает ошибку, и посмотреть, сможете ли вы избежать ее подавления.

Дополнительная информация:

0 голосов
/ 22 февраля 2012

Вы можете использовать try ... catch:

try{
    allert('hello'); //Syntax error
}catch(err){
    console.log(err);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...