Acabei de encontrar isso em um site do cliente onde eles estão usando navegadores mais antigos.
Temos um bloco de JavaScript que precisa buscar o texto de um elemento. Como “innerText” não funciona no Firefox, temos uma declaração como esta:
var someValue = $.browser.mozilla ? element.textContent.toLowerCase() : element.innerText.toLowerCase();
No Chrome, Firefox, Safari e IE 9+, tudo funciona conforme o esperado. O IE 8, entretanto, apresenta o erro de que toLowerCase () não está definido.
A solução?
var someValue;
if ($.browser.mozilla) {
someValue = element.textContent.toLowerCase();
} else {
someValue = element.innerText.toLowerCase();
}
O IE 8 aparentemente tenta analisar os dois lados do ternário antes de avaliar a verdade da condicional, causando esse pequeno problema.