回到我使用 Node.js 的时候,我曾经使用$xmlFile = Get-Content "*.xml"
$xmlFileMinusFormatData = $xmlFile[1..($xmlFile.Length - 1)] #we need to remove the first line
$usableXml = [xml]$xmlFileMinusFormatData # Convert to xml for easy handling
$usableXml.Courses.CourseEntry.Count # just a count of rows
来调用我的外部函数,其中fs.readFileSync(filename)
是要加载的文件的名称
这可能很奇怪,但现在我正在使用jQuery,我有点迷失......
目前我正在收集 3 个不同的文件(一个是filename
,另外两个是.html
),以下是它们的外观:
以下是.js
test.html
以下是<body>
<button id="submitting_button">Valider</button>
<!--//////////////////////-->
<!-- Loads jQuery library -->
<script src="jQuery/jquery.js"></script>
<!-- Loads my jQuery script -->
<script src="jQuery/process.js"></script>
</body>
process.js
最后,这里是$(document).ready(function(){
$('#submitting_button').click(function(){
$.getScript("./functions/my_function.js");
document.write(calculation());
});
});
my_function.js
所以,当我点击«Valider»按钮时,没有任何事情发生,除了Zone.js
is an ambient dependency ......我猜这是因为使用console.log("NOTE : my_function.js has been reached");
function calculation(){
var result = 3+4;
return result;
}
不是一件好事,但我不喜欢不知道加载/读取外部函数的任何其他函数。
答案 0 :(得分:1)
getScript()
是异步,因此下一行代码尝试在该操作完成之前执行。由于操作尚未完成,该功能确实尚未存在。
(请注意,在您的控制台中,错误发生在之前您已登录&#34; my_function.js已到达&#34;到控制台。)
不要在下一行代码上执行它,而是在回调getScript()
中执行它:
$.getScript("./functions/my_function.js", function () {
document.write(calculation());
});
这种方式在异步操作完成后调用。
旁注:document.write()
可能会也可能不会在此处执行任何操作。老实说,我不确定文档中的哪个位置会在此处写入。最好远离document.write()
,而是将值设置为HTML中的现有元素。类似的东西:
$('#output').text(calculation());
其中&#34;输出&#34;将是您想要写入值的某个元素的id
:
<span id="output"></span>