林测试的Liferay 6.2门户网站上的IE8与Win XP和收到此错误:Liferay的下IE8,YUI错误:无效的参数
网页错误的详细信息
消息:无效的参数。 线:18772 字符:13 代码:0 URI:http://a3f36f75.ngrok.io/html/js/everything.jsp?browserId=ie&themeId=eacat_WAR_eacattheme&colorSchemeId=01&minifierType=js&minifierBundleId=javascript.everything.files&languageId=en_US&b=6210&t=1420466752000
显然是与此相关的功能的YUI模块上的错误:
/**
* Sets a style property for a given element.
* @method setStyle
* @param {HTMLElement} An HTMLElement to apply the style to.
* @param {String} att The style property to set.
* @param {String|Number} val The value.
*/
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;
}
},
任何人有任何想法,这里发生了什么?即时通讯使用一个DataTable和合金用户界面来实现表,还即时注意到,该表的DOM操作不工作只是IE8,这是代码:
var nodeObject = Y.one('#myDataTable table');
nodeObject.removeClass('table-table');
nodeObject.addClass('table');
nodeObject.addClass('mytable');
nodeObject.addClass('table-hover');
无关,与你的发行,但:'如果(VAL ===空|| VAL === ''){val ='';}'。为什么“||”?如果* val *是'''',为什么分配''''?让我击败。哦,如果你也打电话,这可能会有所帮助。 – RobG
嘿@RobG这是yui模块,我不能改变这一点,说实话,我不认为这是问题。我使用liferay,所以试图找到触发该模块的调用非常困难。 – Lowtrux
是的,我知道这不是问题,只是奇怪的代码。另外'!isNaN(new Number(val))'看起来是一个非常昂贵的方法来执行'!isNaN(+ val)'(顺便说一句,对于一个空数组和“”(空字符串)都返回* true)很难确切地确定代码试图做什么。 – RobG