我已经到处问过这个问题,但仍然没有得到任何反馈,这让我抓狂。我们在正在使用的门户网站(Liferay 6.2)上使用了一些 Alloy UI 小部件,并且在除 IE8 之外的所有浏览器中一切正常。由于某种原因,我收到一条错误消息,涉及有关 setStyle(用于向 YUI 中的节点添加样式)的 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,但仍然需要找到正确的解释。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)