2017-04-11 57 views
0

我知道,这已经被问了很多,但它是在研究的天,我仍然坚持同样的错误。我似乎无法找到完美的解决方案。经常性未捕获的ReferenceError:功能没有定义

所以我有一个button,我在位于js folder外部文件(scorecards.js)试图功率与JS功能..

<a id="generateScorecardBtn" class="btn orange lighten-1 btn-large" onclick="generateScorecard(document.getElementById('uploadAppPerfLog').value, document.getElementById('uploadDbPerfLog').value);"> 

但是,当我点击我仍然得到这个错误按钮

Uncaught ReferenceError: generateScorecard is not defined 

即使我正确地引用它的HTML <head>

<script src="js/scorecards.js" type="text/javascript"></script> 

请帮助我展开调查。我也使用node.js命令提示编译应用程序。

非常感谢!

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

+0

哪里是'generateScorecard()'定义是什么?在你的'js/scorecards.js'文件中使用 –

+0

在'$(document).ready(function(){..});'(函数除外) –

+0

但我的'外部js'文件只包含'function'代码,我打算在我的'index.html'上使用..这是_except from function_应该是上面的意思吗? @AlivetoDie – JPaulPunzalan

回答

0

此功能:

onclick="generateScorecard(...);" 

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

你需要检查函数是否被投入在命名空间里,如:

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

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

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

onclick="$$global.generateScorecard(...);" 
+0

嗨@Jai我试过这个解决方案,它现在正在抛出'Uncaught ReferenceError:$$ global is not defined'。在我的外部'js'文件中,尽管我只有'function {}'代码块可用于'index.html'。 – JPaulPunzalan

+0

@JPaulPunzalan我给你一个假的全局命名空间。你的情况可能还有其他的东西。你可以在问题中发布你的'scorecards.js'代码吗? – Jai

+0

Hi @Jai我已经上传了Google Drive上的'js'文件。请检查问题下方的编辑。非常感谢! – JPaulPunzalan

0

我的第一个猜想(错误,见下文)是因为“js /”不在当前目录中,js文件没有被加载。检查你有没有正确的相对路径。

但是,无论哪种方式,因为这是一个电子应用时,应该打开Chrome浏览器开发工具,并期待看到你做了什么控制台的错误,或者看网络标签,看看它加载。

toggleDevTools有铬,当你启动,或拿出当您按下一个键开发工具出现。

P.S.我这样做了,你的代码有语法错误!即路径是正确的,但文件内容无效,这就是为什么当你点击按钮时它不存在。

processDataToDictionary()你缺少了“/”在正则表达式的结束。

csv.split(/\r\n|\n); 
相关问题