2012-06-07 48 views
0

我正在創建一個簡單的脫機JavaScript應用程序,該應用程序將分發給CD或其他媒體中的客戶端。在HTML文件的頭,我加載了最新的「jQuery的」腳本,然後另一個文件(「webpages.js」)的含量爲JSON格式以下字符串:將包含的加載的javascript分配給變量

[ 
    { 
    "id":1, 
    "name":"Google", 
    "url":"http://www.google.com" 
    } 
] 

在隨後的JavaScript文件,我希望通過一個變量來訪問數據,例如websites。我已成功嘗試了以下兩個選項。

選項1:編輯文件websites.js直接分配變量,即

websites = 
[ 
    { 
    "id":1, 
    "name":"Google", 
    "url":"http://www.google.com" 
    } 
] 

選項2:使用jQuery的的getJSON,即

$.getJSON('websites.js', function(websites){ 
    // use websites data here 
}) 

我想避免上述選項是因爲(a)我希望保留文件「websites.js」的完整性;和(b)因爲使用jquery的getJSON()只能在Firefox瀏覽器中運行,而不能在Chrome瀏覽器中運行(尚未與其他瀏覽器一起測試過)。

所以,問題是:是否可以將包含的「websites.js」中的字符串賦值給變量?這怎麼能實現?

+0

爲什麼不工作的getJSON在鉻?它應該適用於所有主流瀏覽器。 – Thomas

+0

由於安全。除非使用'--allow-file-access-from-files'標誌啓動,否則在chrome中禁止從一個'file://'url到另一個文件的XHR請求。 – Eric

+1

請注意,網站= $ .getJSON('websites.js')'將_NOT_將json數據放入網站變量中。 – Eric

回答

0

做您嘗試使用您的選項1,而是由任何其他名稱調用websites.js VAR(比如:myWsVar001),並在主文件只是分配:var websites = myWsVar001;

+0

我認爲這樣做會是多餘的。我實際上可以執行** Option 1 **並從主腳本文件訪問變量'websites'。 – DannyClay

+0

另一種方法可以是sites.js中的匿名包裝,但仍然無法實現您的想法 - 將數據保存在某種「真空」條件下,而無需將其分配給任何變種。恕我直言 – shershen

+0

爲了簡化一些自動化,我希望我可以下載網站數據保持原樣,無需額外編輯。當然,我可以想出一個簡短的腳本來將數據分配給'var websites',但之後,我想我是否可以用JavaScript保存所有內容。 – DannyClay

相關問題