Jquery 尝试使用getScript()在页面中动态加载脚本

Jquery 尝试使用getScript()在页面中动态加载脚本,jquery,json,getscript,Jquery,Json,Getscript,我正在建设一个有2个要求的网站,该网站不能使用任何后端代码,该网站必须显示一个不同的翻译取决于用户的国家。我解决了这些问题,使用JSON提取所有数据,使用HTML5和Javascript计算地理位置。然而,我似乎陷入了一个非常简单的障碍: 我正在使用JQuery getScript()函数将JSON文件加载到页面中,然后使用html()回显数据,但是它不起作用,代码如下: <script type="text/javascript"> $(function()

我正在建设一个有2个要求的网站,该网站不能使用任何后端代码,该网站必须显示一个不同的翻译取决于用户的国家。我解决了这些问题,使用JSON提取所有数据,使用HTML5和Javascript计算地理位置。然而,我似乎陷入了一个非常简单的障碍:

我正在使用JQuery getScript()函数将JSON文件加载到页面中,然后使用html()回显数据,但是它不起作用,代码如下:

    <script type="text/javascript">
        $(function() {
            var countryName = 'england'.toLowerCase();  
            $.getScript('elements/'+countryName+'/data/datafile.js', function(data) {
                $('.welcomeOne h1').html(data.dt_welcome[0].Translation);
            });
        });
    </script>

$(函数(){
var countryName='england'.toLowerCase();
$.getScript('elements/'+countryName+'/data/datafile.js',函数(数据){
$('.welcomeOne h1').html(data.dt_welcome[0].Translation);
});
});
正如您所看到的,文件的路径必须是动态的(否则我只会使用标准标记来包含JSON文件)。我没有收到任何错误,但是我在getScript()回调中输入的任何内容都没有被执行,我已经测试了文件路径,我可以向您保证它是正确的

顺便说一句,这里是JSON的相关片段(如果有帮助的话)

var dt_欢迎=[
{“ID”:1,“源”:“欢迎”,“字符可用”:null,“当前字符”:null,“翻译”:“欢迎”,“注释”:null},
{“ID”:2,“来源”:“可用字符”:230,“当前字符”:210,“翻译”:“Lorem ipsum dolor sit amet,concertetur adipising elit,sed do eiusmod temporal incident ut laboure et dolore magna aliqua.ut enim ad minim veniam,quis nostrud execution ullamco laboraris nis ut aliquip ex ea commodo consequat.Duis aute iru”,“Notes”:null},
{“ID”:3,“源”:“,”可用字符“:null,“当前字符“:null,“翻译“:”,“注释”:null},
{“ID”:4,“来源”:“研讨会查找器”,“可用字符”:null,“当前字符”:null,“翻译”:“研讨会查找器”,“注释”:null},
{“ID”:5,“来源”:“可用字符”:260,“当前字符”:234,“翻译”:“Lorem ipsum door sit amet,concertetur adipising elit,sed do eiusmod temporal incident ut laboure and dolore magna aliqua.但是,在最小限度的情况下,如果我们的实验室不符合一般消费者的要求,那么我们的测试结果就是无效的”,“注意:null},
{“ID”:6,“源”:“立即输入”,“可用字符”:null,“当前字符”:null,“翻译”:“立即输入”,“注释”:null},
{“ID”:7,“源”:“可用字符”:null,“当前字符”:null,“翻译”:“注释”:null},
{“ID”:8,“来源”:“品牌名称”,“可用字符数”:null,“当前字符数”:null,“翻译”:“x”,“注释”:null},
{“ID”:9,“来源”:“品牌名称”,“可用字符数”:null,“当前字符数”:null,“翻译”:“,“注释”:null},
{“ID”:10,“来源”:“品牌名称”,“可用字符数”:null,“当前字符数”:null,“翻译”:“x”,“注释”:null},
{“ID”:11,“来源”:“品牌名称”,“可用字符数”:null,“当前字符数”:null,“翻译”:“,“注释”:null},
{“ID”:12,“来源”:“品牌名称”,“可用字符”:null,“当前字符”:null,“翻译”:“x”,“注释”:null}];
提前谢谢。

移动这个

 console.log(data);
                console.log(status);
                $('.welcomeOne h1').html(data.dt_welcome[0].Translation);
对于datafile.js,jQuery会自动以javascript的形式运行从服务器获取的内容

编辑


查看代码后编辑

js文件看起来不是json格式。您需要使用:

$.getScript('/[path]/' + language + 'datafile.js', function() {
另外,您的javascript在第187行有一些错误。完整的要点是缺少引号

您可以使用Firebug(或Chrome或IE)解决此问题,只需像普通一样包含脚本文件并查找错误即可

<script type="text/javascript" src="/[path]/england/datafile.js""></script>

如果您不打算在javascript文件中执行任何代码,我将使用getJSON而不是getScript

从datafile.js中删除“var dt_welcome=”并仅返回文本数组

在对getJSON的调用中,您将传入参数“data”。使用它

   $(function() {
        var countryName = 'england'.toLowerCase();  
        $.getJSON('elements/'+countryName+'/data/datafile.js', function(data) {
            $('.welcomeOne h1').html(data[0].Translation);
        });
    });

发布控制台的内容。logMy console.log是空的。它根本不返回任何内容。我还没有解决这个问题,伙计们,还有其他想法吗?只是想一想-也许你应该从
数据中删除
数据。dt_welcome[0]。翻译
,因为js已经执行了,这意味着变量
dt_welcome[0].Translation
已分配-与传递给回调函数的
数据无关…此外-您可以尝试以某种方式将变量添加到全局命名空间-如
window.dt_welcome=[…]
然后看看这是否会有所不同不幸的是,这是不可能的,我们将让数据输入人员编辑数据文件,因此我们不能在其中包含任何基本的javascript,它只能是数据。如果js文件只包含json,您可以使用$。getJSONI根据您的编辑更新了我的答案,因为您从m服务器将由jquery运行,您将得到一个名为dt_welcome的变量,您可以像在文档中声明的变量一样访问它。对,我的代码现在看起来像
$.getJSON('elements/'+countryName+'/data/datafile.js',function(data){$('.welcomeOne h1').html(dt_welcome[0].Translation););
,但是它似乎没有任何区别!如果没有var'dt_welcome'部分,它将如何知道我正在尝试访问哪个对象,该文件中有大约20个不同的对象。谢谢:),我已经切换到该文件,但我似乎仍然有相同的问题。这最终起作用了。这就是它不起作用的原因昨天是因为我的JSON文件中有注释。结果证明它们是不允许的。一旦我删除了注释以及变量并跟踪“;”它起了作用:)不幸的是,我无法向文件发布位置,因为数据文件包含客户机信息,我同意这会容易得多!:(现在已经进行了清理,这里有一个指向文件的链接:)很抱歉花了这么长时间
<script type="text/javascript" src="/[path]/england/datafile.js""></script>
   $(function() {
        var countryName = 'england'.toLowerCase();  
        $.getJSON('elements/'+countryName+'/data/datafile.js', function(data) {
            $('.welcomeOne h1').html(data[0].Translation);
        });
    });