我遇到了从一个js文件访问另一个js文件的问题。
我尝试过使用jquery来解决这个问题,但似乎没有用。我在浏览器中的控制台只记录:
http://localhost:58763/orderPicking.js?_=1460542934750 404(未找到)。
XHR完成加载:GET“http://localhost:58763/orderPicking.js?_=1460542934750”。
我的js看起来像这样。这是我想从另一个.js文件访问的函数
function HelloWorld() {
//print Hello World
alert("hello world!");
}
另一个.js文件(应该能够访问该函数的文件)看起来像这样。
test();
function test() {
$.getScript('orderPicking.js', function () {
HelloWorld();
});
}
我已将此添加到我的index.html
<script type="text/javascript" src="views/OrderPicking/orderPicking.js"</script>
<script type="text/javascript" src="views/OrderPicking/orderLines.js"></script>
我希望你们能帮我解决问题。
答案 0 :(得分:3)
路径将相对于它所加载的页面(不是路径 您的初始化脚本),因为这是浏览器在何时使用的URL 它执行ajax请求。
确保您的jQuery代码在文档准备好后发生(请确保对此进行某种检查,只需$(document).ready(function () { // code });
就足够了)。假设已经准备就绪,下面应该可以正常工作。
function test() {
$.getScript('views/OrderPicking/orderPicking.js', function (data) {
console.log(data); // should be the js file contents
HelloWorld(); // should alert
});
}
如果您使用的是jQuery 1.5+,最好使用done
和fail
回调,如下所示:
$.getScript('views/OrderPicking/orderPicking.js')
.done(function (script) {
HelloWorld();
})
.fail(function (jqxhr, settings, exception) {
console.log('something went wrong!');
});
答案 1 :(得分:1)
将此代码放在 index.html :
中<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>getScript example</title>
</head>
<body>
<div id="panel"></div>
<script src="http://code.jquery.com/jquery-2.2.3.min.js"></script>
<script src="orderLines.js"></script>
</body>
</html>
将此代码放在同一文件夹中的 orderLines.js 中:
$(function() {
$.getScript('orderPicking.js', function() {
HelloWorld();
})
})
将此代码放在同一文件夹中的 orderPicking.js 中:
function HelloWorld() {
$('#panel').html('<h1>hello world!</h1>');
}
使用命令行实用程序运行服务器(在同一文件夹中)。 NB :文件协议不起作用,您必须使用服务器:
php -S localhost:8080
浏览到http://localhost:8080,您应该看到 hello world!。
以上代码为in a gist,略有改动,以显示页面消息而不是提醒。
要点代码running on bl.ocks.org。它是一个不允许警报调用的沙盒环境,因此我将其更改为添加h1标记。
NB getScript网址参数相对于网站的根目录。因此,在您的情况下,您必须使用 getScript(&#39; views / OrderPicking / orderPicking.js&#39;,...)才能实现此目的。