什么可能导致浏览器中间歇性的ReferenceError / TypeError背后的原因?

时间:2017-07-14 14:02:19

标签: javascript browser

我们有一个呈现HTML页面的Web应用程序,并包含一些外部JavaScript文件,用于定义jQuery$app等变量。

我们会在Bugsnag中跟踪客户端JavaScript错误,有时会收到Uncaught ReferenceError: $ is not definedReferenceError: Can't find variable: app等错误。

这背后可能是什么原因?我可以猜到的两个是:用户可能在浏览器中点击了“停止”并且JS文件没有完全加载但是页面内的内联JavaScript仍然执行(可能吗?),或者某些JavaScript文件被浏览器插件阻止/扩展

我们观察到它发生在所有主流浏览器(Firefox / Chrome / Safari等)中,但发生的情况非常罕见 - 通常是成千上万次请求中的一次。

以下摘录自页面:

<script src="https://path/to/jquery.js"></script>
<script src="/path/to/app.js"></script>
<script type="text/javascript">
  $(document).ready(function() { ... });
  // ^^^^ I receive the error here
  app.init(function() { ... });
  // ^^^^ and sometimes I receive the error here
</script>

1 个答案:

答案 0 :(得分:0)

一个合理的解释是,某些浏览器扩展程序阻止加载这些脚本(例如广告拦截器)。