簡體   English   中英

如何從另一個js文件獲取變量值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM