哈姆尔咖啡 ie8 错误

Haml Coffee ie8 error

本文关键字:错误 ie8 咖啡 哈姆尔      更新时间:2023-09-26

我目前正在一个有主干的项目上使用haml_coffee_assets。所有浏览器似乎都运行良好......除IE8外。

我收到的错误:Expected ']' in regular expression

它所指的行如下:

 HAML.findAndPreserve = function(text) {
      var tags;
      tags = 'textarea,pre'.split(',').join('|');
      // **THE LINE BELOW** 
      return text = text.replace(RegExp("<(" + tags + ")>([^]*?)<''/''1>", "g"), function(str, tag, content) {
        return "<" + tag + ">" + (window.HAML.preserve(content)) + "</" + tag + ">";
      });
    };

它阻止整个页面在加载时编译。数据绑定的div 完全是空的,但所有其他静态元素都可以正常加载。

有问题的 RegExp 可以通过将它们转换为其 HTML 实体格式来保留某些标签中的换行符,因此

<pre>Bar
Baz</pre>

成为

<pre>Bar&#x000A;Baz</pre>

由于您无法使点与 JavaScript 中的换行符匹配,因此您可以使用空的协商字符类来匹配所有内容。由于我们在浏览器中,因此您可以轻松覆盖HAML.findAndPreserve以测试替代方法。我为 IE8 更改它没有问题,但我拒绝安装虚拟机只是为了测试它:-)

[^]的替代方案是['s'S],我已经成功地在 Node 中测试了它.js通过在 Haml Coffee 中更改相应的代码,并且所有规范都通过了。您能否在IE8中尝试一下并报告它是否有效且有效?谢谢!