【发布时间】:2021-08-20 13:50:24
【问题描述】:
我有一些使用函数detect.js 的浏览器嗅探器代码。未添加到我的项目时它工作正常。不过,当我尝试编译 JavaScript 并将其添加到 app.js 时,我在控制台的下面第一行收到错误,刷新浏览器并检测浏览器版本。
未捕获的 ReferenceError:未定义 forEach。
// Each Utility
var each = forEach = function (obj, iterator, context) {
if (obj == null) return;
if (nativeForEach && obj.forEach === nativeForEach) {
obj.forEach(iterator, context);
} else if (obj.length === +obj.length) {
for (var i = 0, l = obj.length; i < l; i++) {
iterator.call(context, obj[i], i, obj);
}
} else {
for (var key in obj) {
if (_.has(obj, key)) {
iterator.call(context, obj[key], key, obj);
}
}
}
};
似乎编译 JavaScript 正在对其进行处理。有什么建议吗?
【问题讨论】:
-
Detect.js 最后一次更新是在 2015 年。你不应该在 2021 年使用它。
-
你需要浏览器在这里嗅探什么?我们或许可以推荐替代品。
-
npm 可能会限定变量的范围。查看生成的文件。请改用
window.forEach = function() { ...。 -
好点 AKX - 我正在寻找检测浏览器 npmjs.com/package/detect-browser 作为选项
-
获得与检测浏览器(索引)类似的问题:300 Uncaught ReferenceError: require is not defined
标签: javascript laravel npm laravel-mix browser-detection