动态加载JavaScript

时间:2014-01-28 22:05:08

标签: javascript jquery cordova

我正在编写一个移动应用程序(PhoneGap),并希望能够运行本地JS文件或下载新版本的JS文件并使用此版本。

在第一个例子中,我试图设置脚本对象的'src'属性,我可以看到它的工作(使用fiddler)。但是虽然我已经加载了脚本,但我无法访问任何对象,但不确定原因。

我的代码:

    function LoadApplicationJs() {
        var AppJs = localStorage.getItem("ApplicationJs");

        if (AppJs == null) {
            $("#Application").attr("src","Application.js");


        }
    }

 LoadApplicationJs();
 alert(app);

有什么想法吗?

由于 保罗。

3 个答案:

答案 0 :(得分:1)

您是否考虑使用Jquery getScript从服务器加载JavaScript文件,脚本在全局上下文中执行。

http://api.jquery.com/jquery.getscript/

来自Jquery样本:

$.getScript( "ajax/test.js", function( data, textStatus, jqxhr ) {
  console.log( data ); // Data returned
  console.log( textStatus ); // Success
  console.log( jqxhr.status ); // 200
  console.log( "Load was performed." );
});

最近发布了一个类似的问题,其中requirejs更适合该任务,以防它也有帮助:

RequireJS Demo

答案 1 :(得分:0)

您还可以使用RequireJS加载和评估您的JavaScript http://requirejs.org

require(["helper/util"], function(util) {
    //This function is called when scripts/helper/util.js is loaded.
});

答案 2 :(得分:0)

不确定它有用,但有些设备需要更严格的JavaScript。有一次,当我的客户在他的设备上测试了一个应用程序并且它在我的设备上运行后崩溃时,它发生在我身上。问题是一个函数,它返回一个不同的函数(返回f()),它假设返回一个字符串。 allas,在我写回f()+“”之前,当我试图访问长度等字符串属性时它崩溃了 如果您可以指定您正在使用的哪个版本的phonegap和操作系统,以及在哪个设备上,它可能有所帮助。如果你可以发布你设法加载并且不起作用的代码,而不是调用它的代码,你说它没有任何问题,它会有更多的帮助。