javascript - less 1.4 string.trim() ie8 崩溃

标签 javascript css less

我在本地环境中使用 less.js。我对 IE8 + less.js (1.4.1) + es5-shim.js 有疑问。当我包含 es5-shim native ie8 崩溃时。我检查并做了一些测试,这是因为 less.js 中使用了 string.trim() 函数。当我修改 trim 函数以返回未 trim 的字符串时,ie8 不会崩溃,但现在脚本无法识别 mixins 等。也许有人对此有一些解决方案?

最佳答案

如果你使用 es5-shim 的唯一目的是 trim polyfill,你可以尝试不使用 es5-shim 并包含这个替代的 polyfill,看看它是否有效

''.trim||(String.prototype.trim=function(){return this.replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g,'')});

也就是说,我目前正在使用 String.trim() 的 es5-shim 版本 ES-5 15.5.4.20 和更低的版本 v1。 4.2 并且它们在 IE8- 中可以很好地协同工作。

如果你想比较实现,我正在运行的版本有这段代码......

// ES5 15.5.4.20
// http://es5.github.com/#x15.5.4.20
var ws = "\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003" +
    "\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028" +
    "\u2029\uFEFF";
if (!String.prototype.trim || ws.trim()) {
    // http://blog.stevenlevithan.com/archives/faster-trim-javascript
    // http://perfectionkills.com/whitespace-deviations/
    ws = "[" + ws + "]";
    var trimBeginRegexp = new RegExp("^" + ws + ws + "*"),
        trimEndRegexp = new RegExp(ws + ws + "*$");
    String.prototype.trim = function trim() {
        if (this === void 0 || this === null) {
            throw new TypeError("can't convert "+this+" to object");
        }
        return String(this)
            .replace(trimBeginRegexp, "")
            .replace(trimEndRegexp, "");
    };
}

关于javascript - less 1.4 string.trim() ie8 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19008505/

相关文章:

javascript - 工具提示未显示在 d3 图表中点/圆顶部的附加 'rect' 处

javascript - 我如何在没有 Java/Flash 的情况下实时捕获音频(从麦克风)

css - 图像 Sprite 大小是否重要

javascript - 如何只显示一张图片并将其置于 slider 中央?

html - 带有信息选项悬停的图像堆叠

javascript - 运行 nightwatchjs 测试时出现 TypeError [ERR_UNESCAPED_CHARACTERS]

javascript - Ember.js RESTful 模型关系

ruby-on-rails - sass/scss 文件是否会编译以在每个用户页面加载时渲染最终的 css 文件?

html - css 从另一个网站插入图片?

css - LESS CSS 伪类可以将选择器的属性传递给函数吗?