我遇到了全局變量問題。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中工作,但鉻顯示「未定義」
考慮最小化全局屬性(全局變量和全局函數)的使用。全局名稱空間已經包含了數百個名稱 - 您不想將自己的名稱推入該名稱空間。 –
是的,我同意 - 我知道你可能已經知道這一點,但全局變量幾乎總是一種可怕的做事方式。抽象邏輯轉換爲函數並傳遞參數。簽名,那個有一天必須維護你的意大利麪代碼的人:) –