l20n.js:Uncaught(在promise中)TypeError:element.querySelectorAll不是函数(...)

时间:2016-01-28 15:45:46

标签: javascript l20n

我正在使用Mozilla的l20n.js v.3.5.0

<script defer src="/bower_components/l20n/dist/compat/web/l20n.js"></script>

并在脚本尝试解析页面时出现严重错误。

l20n.js:2274 Uncaught (in promise) TypeError: element.querySelectorAll is not a function(…)
getTranslatables @ l20n.js:2274
_translateFragment @ l20n.js:2341
(anonymous function) @ l20n.js:2067
translateRoots @ l20n.js:2066
translateView @ l20n.js:2623
(anonymous function) @ l20n.js:2491

有没有人遇到同样的问题? Chrome和Edge都会出现错误。

1 个答案:

答案 0 :(得分:1)

图书馆里有a bug。它已得到纠正,但新版本尚未发布。

如果您愿意,可以通过以下代码替换translateRoots(),第2066-2068行的内容来直接更正JavaScript文件:

var roots = Array.from(observers.get(view).roots);
return Promise.all(roots.map(function(root) { 
    _translateFragment(view,root) 
}));

更新(2016年2月26日):如下面的评论中所述,现在您只需要移至v3.5.1或更高版本。它适用于FF,IE11,Chrome。