javascript - 为什么找不到现有的 JavaScript 函数生成未捕获的 ReferenceError
问题描述
错误:
readyException.js:6 Uncaught ReferenceError: editMap is not defined
at HTMLDocument.<anonymous> (edit:190)
at mightThrow (deferred.js:97)
at process (deferred.js:139)
来自 Chrome Source 的页面(popupText
使用 Rails 生成):
<div id="map"></div>
<script>
var popupText = "≥1908<br>Benefit St<br>≤1908<br>Fountain Ave";
$(document).ready(function() {
editMap(popupText);
});
</script>
application.js
来自 Chrome Sources的一些相关行
function editMap(popupText) {
if (laMap != undefined) {
laMap.remove();
}
showMap(popupText)
var drawnItems = new L.FeatureGroup();
试图将应用程序移动到 Rails 6 和 webpacker。
解决方案
Webpack 不会将你的 JavaScript 暴露在全局范围内;每个文件都被视为一个模块,在实践中,它是一个具有自己作用域的函数。要公开对全局范围的特定引用,您可以从模块内将其分配给window
对象,例如。window.editMap = editMap
推荐阅读
- elixir - Node.spawn/2 和 Process.spawn/1 有什么区别?
- visual-studio - 当我单击 VS Code 中的任意位置时,Live Server 关闭
- matlab - 使用一个 for 循环打印多个显示函数
- asp.net - 启动 IIS Express 托管 Web 项目 (VS2015) 时无法加载 DLL
- java - 无法解析方法“in(Java.util.concurrent.TimeUnit)”
- react-native - 导航后如何保持之前的状态
- css - Boostrap如何添加img与其他img对齐
- android - 如何在显示 Firebase 数据获取进度条时通过 startListening() 解决错误?
- mongodb - 为什么直接搜索 MongoDB 分片的全文搜索比通过集群管理器 (mongos) 实例快得多?
- python - 在 numpy.select 条件中使用