将包含的已加载javascript分配给变量

将包含的已加载javascript分配给变量,javascript,jquery,json,Javascript,Jquery,Json,我正在创建一个简单的离线javascript应用程序,它将以CD或其他媒体的形式分发给客户端。在HTML文件的头部,我加载了最新的“jquery”脚本,然后是另一个文件webpages.js,其内容是json格式的以下字符串: [ { "id":1, "name":"Google", "url":"http://www.google.com" } ] 在随后的javascript文件中,我希望通过变量(例如网站)访问数据。我已经成功地尝试了以下两种选择 选项1:

我正在创建一个简单的离线javascript应用程序,它将以CD或其他媒体的形式分发给客户端。在HTML文件的头部,我加载了最新的“jquery”脚本,然后是另一个文件webpages.js,其内容是json格式的以下字符串:

[
  {
    "id":1,
    "name":"Google",
    "url":"http://www.google.com"
  }
]
在随后的javascript文件中,我希望通过变量(例如网站)访问数据。我已经成功地尝试了以下两种选择

选项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
})
我希望避免使用上述选项,因为我希望保持文件websites.js的完整性;b因为使用jquery的getJSON只在Firefox浏览器中有效,而在Chrome浏览器中不起作用,所以还没有在其他浏览器上测试过


所以,问题是:是否可以将包含的websites.js中的字符串指定给变量?如何实现这一点?

您是否尝试使用选项1,但在websites.js中使用任何其他名称调用var,例如:myWsVar001,并且在主文件中只分配:var websites=myWsVar001

为什么getJSON不能在chrome中工作?它应该可以在所有主要的浏览器中使用。因为安全性。chrome中禁止从一个文件到另一个文件的XHR请求://url,除非它以-allow file access from files标志开头。请注意,websites=$.getJSON'websites.js'不会将json数据放在websites变量中。感谢@Eric注意到这一点。我在上面把它修好了。我希望这次我答对了。我认为这样做是多余的。实际上,我可以执行选项1并从主脚本文件访问变量网站。另一种方法可以是websites.js中的匿名包装器。。。但仍然不能得到你的想法-保持数据在某种真空状态,而不将其分配给任何变量。我希望能够简化一些自动化,我希望我可以下载网站数据,保持它的原样,而无需额外编辑。当然,我可以想出一个简短的脚本来将数据分配给var网站,但是,我当时在想,如果我可以将所有内容都保存在javascript中。