Javascript 在运行时添加js文件时出现语法错误

Javascript 在运行时添加js文件时出现语法错误,javascript,jquery,Javascript,Jquery,所以我尝试在运行时添加一个js文件,我有一个简单的HTML <!doctype html> <head> <meta charset="UTF-8"> <title>test</title> <script src="jquery.js" type="text/javascript" ></script> <script src="main.js" type="text/ja

所以我尝试在运行时添加一个js文件,我有一个简单的HTML

<!doctype html>
<head>
    <meta charset="UTF-8">
    <title>test</title>
    <script src="jquery.js" type="text/javascript" ></script>
    <script src="main.js" type="text/javascript"></script>
</head>

<body onLoad="init();">
</body>
</hmtl>
我在test.js的第一行中发现了一个语法错误,它包含了这个函数

function hello(){

    console.log("hello");
}
但问题是,如果我在确保test.js文件加载后调用main.js中的hello函数,它就会正常工作。那么,为什么会出现语法错误呢

如果我在html中包含test.js,则错误也不存在

注意:错误消息并没有阻止我所说的任何事情,一切仍然有效

编辑:chrome下的错误消息:

XMLHttpRequest cannot load file:///G:/tt/Desktop/black%20box/bots/test.js?_=1424695256510. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.

为了回答一些问题,我使用按钮上的单击事件来调用“hello()”函数,该函数工作正常(在控制台中输出hello,并且不会出现任何错误)。

$getScript
使用ajax异步检索文件,然后执行它,它定义了hello函数,但没有调用它。您可以在
$中调用函数。getScript
成功处理程序:

$.getScript('bots/test.js', function () {
    hello();
});
无法加载XMLHttpRequestfile:///G:/tt/Desktop/black%20box/bots/test.js?_=1424695256510. 跨源请求仅支持协议方案:http、数据、chrome、chrome扩展、https、chrome扩展资源


getScript
通过Ajax加载文件。您不能在本地文件上执行Ajax。在Web服务器上进行测试。

也许您应该在
之前添加一个
标记?

提供有问题的错误消息本身。错误消息只是第1行的“语法错误”没有其他内容,这在Firefox哪个浏览器中?尝试使用chrome,通常错误信息更清晰。您如何调用
hello()
?因为
getScript
是一个异步函数。该错误消息(a)不是语法错误,(b)准确地告诉您使用此本地语言时isI计划出现什么问题,所以我只需要删除getScript,并在不使用ajax的情况下加载文件?这将是另一种方法,是的。Yep使用本机方法加载js文件,现在可以正常工作了。但是如果ajax不起作用,为什么它以前也能起作用呢?HTML元素的开始标记是可选的。@Quentin我不知道问题是跨源请求策略导致的语法错误,而不是没有调用的函数。
$.getScript('bots/test.js', function () {
    hello();
});