YUI no IE8: Argumento inválido no dom-style.js
Eu perguntei isso em todos os lugares, mas ainda não recebi nenhum feedback e está me deixando louco. Estamos usando alguns widgets da Alloy UI no portal em que estou trabalhando (Liferay 6.2) e tudo funciona bem em todos os navegadores, exceto o IE8. Por algum motivo, estou recebendo uma mensagem de erro sobre um argumento inválido em uma das funções dos arquivos principais da YUI em relação a setStyle (o que você usa para adicionar estilos a um nó na YUI). Percebi que o IE8 não está satisfeito com isso (aqui está toda a função YUI):
setStyle: function(node, att, val, style) {
style = style || node.style;
var CUSTOM_STYLES = Y_DOM.CUSTOM_STYLES;
if (style) {
if (val === null || val === '') { // normalize unsetting
val = '';
} else if (!isNaN(new Number(val)) && re_unit.test(att)) { // number values may need a unit
val += Y_DOM.DEFAULT_UNIT;
}
if (att in CUSTOM_STYLES) {
if (CUSTOM_STYLES[att].set) {
CUSTOM_STYLES[att].set(node, val, style);
return; // NOTE: return
} else if (typeof CUSTOM_STYLES[att] === 'string') {
att = CUSTOM_STYLES[att];
}
} else if (att === '') { // unset inline styles
att = 'cssText';
val = '';
}
style[att] = val;
O que está fazendo com que o IE8 relate o erro é esta linha:
style[att] = val;
aparentemente por causa de
val =' ';
O que eu não entendo é por que os outros navegadores não têm nenhum problema com essa declaração e apenas o IE8 reclama. Como isso faz parte dodom-style.js que é um arquivo principal para YUI no Liferay, eu realmente não quero mexer com esse código. Eu realmente aprecio qualquer ajuda, já que tenho lidado com isso por toda a semana e ainda não consigo obter uma solução e / ou informações no www sobre um problema semelhante.