[英]How to get variable value from another js file
我有一個名為Second.js
JavaScript文件,其中包含名為page
變量。
Second.js:
var page = 1;
如何從另一個名為one.js
JavaScript中檢索該值(即page
?
從另一個.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
如果您確實希望變量在不同腳本之間可見,則可以在window
上附加變量。 例如:
腳本1:
window.page = 1;
腳本2:
alert(page);
確保不要使用非常簡單的變量名(例如page
),以避免可能的沖突。 一個好的做法是在窗口上附加一個應用程序名稱數組,並使用它,並確保您不會影響“全局范圍”中的任何內容。 例如:
window.MY_APP = {
page: 1,
foo: 'bar',
whatever: [1, 2, 3],
example: {
name: 'john',
surname: 'smith'
}
};
頁面上的所有JavaScript都在相同的整體環境中執行,因此如果Second.js
page
是全局的,則可以從頁面上加載的任何其他JavaScript中使用它。 例如:
<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可能會因您的所作所為而變得過大,或者,我們在這里沒有太多背景信息。)
它們都必須包含在同一個HTML文件中。 確保兩者都已裝入並已加載,然后就好像您的所有JavaScript都存在於一個單獨的大型JS文件中一樣!
有兩種方法:按照要訪問腳本的順序加載腳本,或者在加載頁面之前不要開始執行腳本(建議這樣做,因為這樣可以確保確實加載了所有內容!)。 無論哪種方式,您都可以像在同一文件中一樣引用變量-無需使用'var'重新聲明它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.