Javascript函数无法从外部文件访问
javascript function not accessible from external file
这可能是一个愚蠢的初学者的问题,但它让我发疯。简化后的代码是:
-
我有一个index.php,其中在一个内联脚本(位于头部元素),一些JS函数被定义。
<script type="text/javascript"> $(function(){ // other code var popup = function(message,color){ $(".title").css({"color": "beige" }); $(".popup_alert").css({"background-color": color}); $( ".popup_alert" ).append(message); $(".popup_alert").removeClass("offscreen").delay(800).queue(function(){ $(this).addClass("offscreen").dequeue(); $(this).empty(); $(".title").css({"color": "#444" }); }); }; }; </script>
-
在
<body>
的底部,我正在加载一个外部JS文件,其中一些JQuery发生:<script src="ajaxToDB.js" type="text/javascript"></script>
JQuery不是问题。
-
在这个链接的文件中,我不能调用index.php中定义的函数。
popup("test",orange);
将产生控制台错误"Uncaught ReferenceError: popup is not defined"
这正常吗?我已经把ajaxtodb。js中的所有东西都包装在a中了$(function(){…});我读到这将迫使页面首先加载,但无济于事…
我忽略的那个愚蠢的细节是什么?感谢@guest271314,我学到了JS结构的一课:
之前,我在$(function(){};
的主文档的脚本标签中包装了整个代码,我认为这是"必要的",因为脚本标签被放置在head元素中,否则文档就不会准备好了。
然而,当使用另一个外部JS文件时,这种技术现在阻止外部代码引用内联声明的函数,因为这些代码现在"等待"文档的其余部分准备好,包括外部文件(然后引用尚未声明/"挂起"的主函数)。
哇。
移除$(function(){};
包装并将脚本元素移动到body的底部解决了这个问题。我想它一开始就应该在那里……升级
相关文章:
- 从另一个文件访问函数的返回值
- 从HTML中的另一个文件访问javascript方法
- Chrome中的本地文件访问
- 从require()'d文件访问函数
- 从另一个 javascript 文件访问 main() 函数
- 从不同的javascript文件访问HTML表单提交的值
- http(localhost或remote)提供的文件是否可以从通过file://protocol打开的本地文件访问?反
- 使用PrimeFaces从Javascript文件访问资源
- 从php文件访问javascript数组
- 如何从单独的javascript文件访问模型属性?(MVC)
- 通过文件访问页面时Cookie不起作用://
- 从批处理文件访问JavaScript方法
- 从不同目录中的另一个文件访问一个文件
- 从其他文件访问 Ext 甘特 JS 变量
- 解决 Html5 本地文件访问问题
- 从外部 Javascript 文件访问数据
- 从 javascript 文件访问 Webform
- 从外部 JavaScript 文件访问表单元素
- 如何从 jade 文件中的 javascript 文件访问变量的值
- 如何从我的外部javascript文件访问php变量