IE8 上的 YUI:参数在 dom-style.js 上无效

YUI on IE8: Argument not valid on dom-style.js

我到处都问过这个问题,但仍然没有得到任何反馈,这让我很抓狂。我们正在使用(Liferay 6.2)的门户网站上使用一些 Alloy UI 小部件,并且在除 IE8 之外的所有浏览器中一切正常。出于某种原因,我收到一条关于 YUI 核心文件函数之一中关于 setStyle(用于向 YUI 中的节点添加样式)的无效参数的错误消息。我已经意识到 IE8 对此不满意(这是整个 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;

导致IE8报错的是这一行:

style[att] = val;

显然是因为

val =' '; 

我不明白的是为什么其他浏览器对该声明没有任何问题而只有 IE8 对此有抱怨。因为这是 dom-style.js 的一部分,它是 Liferay 中 YUI 的核心文件,我真的不想弄乱那个代码。我将非常感谢任何帮助,因为我整整一周都在处理这个问题,但仍然无法在 www 上获得有关类似问题的解决方案和/或信息。

好的,这比我想象的要简单得多。出于某种原因,当您使用 :

初始化 Alloy UI 时,所有现代浏览器(包括 IE9)都没有任何问题
YUI({ lang: 'ca-ES' }).use(
  'aui-node',
  'aui-datatable',
  'aui-pagination',
  'datatype-date',

function(Y) {...

但是 IE8(当然)会给您带来一系列非常奇怪的控制台错误,并且如果您不使用 AUI 而不是 YUI,将使您的小部件无法正常工作,所以这是我在代码的所有部分中用 AUI 替换了 YUI,现在在 IE8 中也能正常工作。如果有人能给出正确的解释,我将不胜感激,因为我很难理解为什么 IE8 不能使用 YUI 来初始化 Alloy UI 小部件或使用 YUI.

我仍在对此进行一些研究,但似乎发生这种情况的原因是因为我在 .JS 文件上使用 YUI,仍然需要找到正确的解释。