ie8 respond.js’undefined’为null或不是对象

我正在使用respond.js (该库为+1),并且我得到了对象的以下函数的错误:

translate = function (styles, href, media) { // here I got 'undefined' error in IE 8 var qs = styles.match(/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi), ql = qs && qs.length || 0; //try to get CSS path href = href.substring(0, href.lastIndexOf("/")); var repUrls = function (css) { return css.replace(/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g, "$1" + href + "$2$3"); }, useMedia = !ql && media; //if path exists, tack on trailing slash if (href.length) { href += "/"; } //if no internal queries exist, but media attr does, use that //note: this currently lacks support for situations where a media attr is specified on a link AND //its associated stylesheet has internal CSS media queries. //In those cases, the media attribute will currently be ignored. if (useMedia) { ql = 1; } for (var i = 0; i < ql; i++) { var fullq, thisq, eachq, eql; //media attr if (useMedia) { fullq = media; rules.push(repUrls(styles)); } //parse for styles else { fullq = qs[i].match(/@media *([^\{]+)\{([\S\s]+?)$/) && RegExp.$1; rules.push(RegExp.$2 && repUrls(RegExp.$2)); } eachq = fullq.split(","); eql = eachq.length; for (var j = 0; j  -1, minw: thisq.match(/\(\s*min\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/) && parseFloat(RegExp.$1) + (RegExp.$2 || ""), maxw: thisq.match(/\(\s*max\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/) && parseFloat(RegExp.$1) + (RegExp.$2 || "") }); } } applyMedia(); }, 

还有其他解决方法吗? 我试过不同的……

我在121行(Respond.js 1.3.0)中遇到了类似的问题。 一个空样式表导致问题,删除它解决了问题。

没有足够的信息来判断您的案例是否完全相同,但您可以尝试看看它是否有帮助。