我正在使用Mozilla的l20n.js版本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均引发错误。
最佳答案
库中有a bug。已得到纠正,但是新版本尚未发布。
如果需要,可以使用以下代码替换translateRoots()
的内容,第2066-2068行,直接更正JavaScript文件:
var roots = Array.from(observers.get(view).roots);
return Promise.all(roots.map(function(root) {
_translateFragment(view,root)
}));
更新(26/2/2016):如下面的评论所述,现在您只需移至v3.5.1或更高版本。它适用于FF,IE11,Chrome。