我遇到了全局变量问题。Javascript:在.js文件之间共享全局变量
考虑到我有以下文件:init.html,main.html中,init.js,main.js和help.js:
其中,init.html:
<HTML>
<HEAD>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.3.min.js"></script>
<script type="text/javascript" charset="UTF-8" src="init.js" ></script>
<script type="text/javascript" charset="UTF-8" src="main.js" ></script>
<script type="text/javascript" charset="UTF-8" src="help.js" ></script>
</HEAD>
<BODY>
<script>
$(document).ready(function() {
test();
});
</script>
</BODY>
</HTML>
在init.js:
function test(){
alert(window.glob);
}
在main.html中:
<HTML>
<HEAD>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.3.min.js"> </script>
<script type='text/javascript' >
top.glob = "global variable";
</script>
<script type="text/javascript" charset="UTF-8" src="help.js" ></script>
<script type="text/javascript" charset="UTF-8" src="main.js" ></script>
</HEAD>
<BODY>
<div id="divtest"></div>
<form>
<input type="button" value="button" onClick="callTest()" />
</form>
</BODY>
</HTML>
main.js:
function change(p){
window.glob = p;
$('#divtest').html("<iframe id='IFRAMEtest' width='720' height='400' frameborder='0' src='init.html'></iframe>");
}
而且在help.js:
function callTest(){
change('param');
}
当我点击链接,将显示 “全局变量”,但我需要显示 “参数”。
简而言之,我需要一个.js文件读取另一个js文件中的全局变量,其中此变量被馈送到用户事件调用的函数中。
谢谢。
编辑 - 导入文件之前进行初始化的全局变量。 JS和使用顶部。在IE和Firefox中工作,但铬显示“未定义”
考虑最小化全局属性(全局变量和全局函数)的使用。全局名称空间已经包含了数百个名称 - 您不想将自己的名称推入该名称空间。 –
是的,我同意 - 我知道你可能已经知道这一点,但全局变量几乎总是一种可怕的做事方式。抽象逻辑转换为函数并传递参数。签名,那个有一天必须维护你的意大利面代码的人:) –