我的 HTML 文件中有一个脚本标签
<head>
<script src="myjs.js"></script>
<script>
</script>
</head>
<body>
</body>
和一个外部的javascript文件,脚本标签中的变量有没有办法与javascript文件中的脚本交互?
我的 HTML 文件中有一个脚本标签
<head>
<script src="myjs.js"></script>
<script>
</script>
</head>
<body>
</body>
和一个外部的javascript文件,脚本标签中的变量有没有办法与javascript文件中的脚本交互?
脚本文件的内容和以下脚本元素都将被视为全局代码,就好像它们位于单个脚本元素中一样。
但是,第一个文件中的代码将在第二个脚本元素的内容被解析或执行之前执行(这意味着在第二个脚本中声明和初始化的变量对于第一个脚本不存在)。
绝对地。一旦您的外部文件被加载到页面中,它就会被视为像您的第二个脚本一样在页面中编码。根据您如何确定变量的范围,可能存在冲突,并且可以更改/覆盖值。
您的 html 结构似乎无效
应该
<html>
<head>
<script type="text/javascript" src="myjs.js"></script>
<script type="text/javascript">
//Now you can use external variable here
</script>
</head>
<body>
</body>
</html>
如果要从脚本标记中的代码引用 javascript 文件中的变量,则需要确保 javascript 文件已加载。执行此操作的常用方法是将处理程序附加到 window.onload 事件并引用该处理程序中文件中的变量。最简单(但不一定是最好)的方法如下:
<script>
window.onload = function() {
// reference loaded variables, domNodes, etc
}
</script>
大多数 javascript 库/框架都有执行此操作的机制。有关其中一个示例,请参见jQuery .ready() 。
如果您有一个想要拆分成有意义的模块的大型应用程序,我建议您研究AMD(异步模块定义)。在http://blog.amt.in/asynchronous-module-definition-amd-why-what-a上有一组很好的幻灯片描述了 AMD 是什么以及为什么要使用它