我的JavaScript文件名为Second.js
,其中包含名为page
的变量。
Second.js:
var page = 1;
如何从另一个名为page
的JavaScript中检索该值,即one.js
?
答案 0 :(得分:1)
从另一个.js文件获取值的另一种方法是将变量保存在浏览器中:
a.js
var myemail="xyz@gmail.com";
localStorage.setItem("email",myemail);
现在这个变量保存在浏览器中。如果我们想在另一个文件中获取此变量,我们使用:
b.js
var x=localStorage.getItem("email");
alert(x) // output=xyz@gmail.com
答案 1 :(得分:0)
如果您确实希望不同脚本之间具有可变可见性,则可以在window
上附加变量。 e.g:
脚本1:
window.page = 1;
脚本2:
alert(page);
确保您不使用非常简单的变量名称(例如page
)以避免可能的冲突。一个好的做法是在窗口上附加一个应用程序名称数组并使用它,确保您不会影响"全局范围"。 e.g:
window.MY_APP = {
page: 1,
foo: 'bar',
whatever: [1, 2, 3],
example: {
name: 'john',
surname: 'smith'
}
};
答案 2 :(得分:0)
页面上的所有JavaScript都在相同的整体环境中执行,因此如果page
是Second.js
中的全局,您可以在页面上加载的任何其他JavaScript中使用它。 E.g:
<script src="Second.js"></script>
<script src="SomeOtherFile.js"></script>
再次提供page
是全局的,您可以在SomeOtherFile.js
中使用它(仅将其引用为page
,无需限定符)。
甚至:
<script src="Second.js"></script>
<script>
alert(page); // "1"
</script>
如果page
不是全局,那么您必须以某种方式修改Second.js
以生成page
变量或其他脚本可用的值。当然,您可以通过将其设置为全局来实现,或者您可以使用异步模块定义加载器来避免包含多个全局变量并管理依赖项。 (对于你正在做的事情,AMD可能有点过分,或者没有,我们在这里没有太多的背景。)
答案 3 :(得分:0)
它们都必须包含在同一个HTML文件中。确保它们都在,并且加载,然后就好像你所有的javascript都存在于一个单一的,庞大的JS文件中!
答案 4 :(得分:0)
有两种方法可以执行此操作:按照您要访问它们的顺序加载脚本,或者在加载页面之前不要开始执行脚本(建议,因为这样可以确保所有内容都已加载!) 。 无论哪种方式,您都可以引用变量,就好像它们位于同一个文件中一样 - 您不需要使用'var'重新声明它们。