2017-08-26 181 views
0

我有一個生成JSON格式字符串的腳本。我想在另一個腳本中使用此字符串中包含的數據。我不確定從哪裏開始。我想過從同一個目錄運行這兩個腳本,並以某種方式將JSON數據輸出到文本文件中,然後將其加載到第二個腳本中,但這看起來更像是一種解決方法而不是實際的解決方案。是否有可能以某種方式從第一個腳本中調用第二個腳本並將其傳遞給它?就像在單個腳本中的函數之間傳遞數據一樣?在Javascript文件之間共享數據

FWIW我試着簡單地將兩個腳本的功能合併爲一個,但是這導致了我無數的頭痛,沒有任何進展。爲了簡單起見,我寧願將每個腳本執行的功能分開(除了明顯的數據共享要求外)。

任何意見或正確的方向點將不勝感激。

+0

你可以使用ES6導入/導出 – Liroy

回答

0

很難說沒有一些代碼引用,但可能只是一個全局變量與檢查,如果它爲空。

var myJsonString = null; 

function one() { 
    var jsonString = "[]"; 
    myJsonString = jsonString; 
} 

function two() { 
    //string not set so bail 
    if (myJsonString === null) { return; } 
} 
0

所以它實際上取決於你所使用的編程環境是什麼,如果它的網絡瀏覽器,所有的代碼是在實際的全球空間,才能運行。所以如果你在你的html文件中有<script src="file1">然後<script src="file2">,並且你在第一個文件中放入x = 10並在第二個文件中使用它,那麼你將沒有問題。如果您使用的是node.js,我也可以爲此發佈解決方案,只需告訴我。

(順便說一句,如果你把X = 10在第二個文件,並從第一引用它會引發錯誤)

有避免這種方式,諸如使用的document.ready函數或包裹的東西在函數中,然後在最後調用它們。你需要確保函數和變量在被使用之前被創建(這是初學者常犯的錯誤,並且被混淆)

+0

對不起,新的JavaScript,所以我應該有我確實利用提到node.js,而不是編寫在網站上使用的代碼。 – Mattaus

+0

[我發現這個](https://stackoverflow.com/questions/17120117/sharing-modifying-a-variable-between-multiple-files-node-js)根據您的迴應細化我的搜索條件。我會給我看到一個嘗試。幸運的是,我的兩個腳本不會嘗試更改任何腳本數據 - 一個創建,另一個讀取。只有一種方法:) – Mattaus

+0

哦,沒問題。這個變化很大。讓我知道你是否需要更多幫助。祝你好運! –

0

如果JSON數據小於5 MB,那麼你可以使用localStorage將輸出保存在瀏覽器中。

在第一js文件:

function fOne(){ 
    var jsonStr = ''; //insert some json data here 
    localStorage.setItem("myJson", JSON.stringify(jsonStr)); //save data 
} 

在你的第二個js文件:

function fTwo(){ 
    if (localStorage.getItem("myJson") !== null) { 
     var passedJson = localStorage.getItem("myJson"); //get saved data anytime 
    } 
} 
+0

我的歉意@TusharTyagi,我應該提到我正在使用node.js,而不是瀏覽器的編程工作。我相信上述內容僅適用於瀏覽器環境? – Mattaus

+0

好吧,那麼,由於您的問題中使用的標籤,更多的脂肪酶可能​​會感到困惑,所以你必須編輯它asap :) –