重复未捕获的ReferenceError:未定义函数

时间:2017-04-11 04:48:40

标签: javascript jquery node.js electron javascript-objects

我知道这已经被问了很多,但是经过了几天的研究,我仍然遇到了同样的错误。我似乎无法找到完美的解决方案。

所以我有一个button,我试图通过位于{{1}的外部文件(JS)上的scorecards.js功能提供支持} ..

js folder

但是当我点击按钮

时,我仍然会收到此错误
<a id="generateScorecardBtn" class="btn orange lighten-1 btn-large" onclick="generateScorecard(document.getElementById('uploadAppPerfLog').value, document.getElementById('uploadDbPerfLog').value);">

即使我在HTML Uncaught ReferenceError: generateScorecard is not defined

上正确引用了它
<head>

请帮我调查一下。我还使用<script src="js/scorecards.js" type="text/javascript"></script> 命令提示符编译应用程序。

非常感谢!

链接node.jshttps://drive.google.com/open?id=0BzZ5wr0I2306VGJzTUZTMDY4eHc

2 个答案:

答案 0 :(得分:0)

此功能:

onclick="generateScorecard(...);" 

应该在全局范围(窗口)中,因为您直接引用它。如果错误显示未捕获的ReferenceError:未定义generateScorecard 这意味着它在全局范围内不可用,因为您猜测它是。

您需要检查函数是否已放在名称空间中,如:

var $$global = $$global || {};

$$global.generateScorecard = function(a, b){};

如果是这种情况,则该功能将作为

提供
onclick="$$global.generateScorecard(...);" 

答案 1 :(得分:0)

我的第一个猜测(错误,见下文)是没有加载js文件,因为&#34; js /&#34;不在当前目录中。检查您是否有正确的相对路径。

但是,无论哪种方式,因为这是一个Electron应用程序,您应该打开chrome dev工具,并查看您获得的控制台错误,或查看“网络”选项卡以查看它是否正在加载。

查看toggleDevTools以便在启动时显示chrome dev工具,或在按键时显示。

P.S。我做到了,你的代码有语法错误!即路径是正确的,但文件内容无效,这就是单击按钮时不存在的原因。

processDataToDictionary()中你错过了&#34; /&#34;在正则表达式结束时。

csv.split(/\r\n|\n);