javascript在Cordova项目中不起作用

时间:2015-11-03 10:54:16

标签: javascript jquery cordova phonegap-build

我有一个可以在网络上找到的网络项目。我想把它转移到phonegap windows phone项目中。 一切正常,但在搜索选项中,每当我点击搜索选项时,它都不会显示任何消息“我们无法显示此消息”。 N:B:此搜索选项在网络中正常运行。 这是我的搜索代码:

<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<script src="js/materialize.min.js"></script>
<script src="js/init.js"></script>
<script> 
    var c=getCatalogue();
    var bestNew=getBestNew();

    $("#recherche").click(function(){
        var v=$("#search").val();
        window.localStorage.setItem("search",v);
        if(v!="") routePage("recherche.html?search="+v);
    });     
</script>

我认为问题是当我将值传递给另一个“search =”+ v“的页面时。 当我使用if(v!="") routePage("recherche.html);代替if(v!="") routePage("recherche.html?search="+v);时,它可以正常工作。

2 个答案:

答案 0 :(得分:0)

尝试在本地下载和使用JavaScript导入,而不是在非必要时提取远程版本。

请参阅:     <script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>

还应包括phonegap.js:     <script type="text/javascript" src="phonegap.js"></script>

答案 1 :(得分:0)

您需要将JQuery源移动到本地文件并更新脚本标记,就像使用materialize.min.js一样。从网络加载库JS不是一个好主意,因为它会降低应用程序的启动速度,并且在没有网络访问的情况下启动时也会导致它失败。

此外Cordova / PhoneGap的Content Security Policy可能出于安全原因阻止远程脚本加载 - 您没有说明您正在使用哪个PhoneGap / Cordova版本,但这对您来说可能是一个问题在Cordova 5.有一个关于处理here的教程。您可以通过调整内容安全策略元标记来配置,以允许脚本src来自&#34; self&#34;但我不推荐这个。

在Cordova / PhoneGap中运行时,您还应该在尝试执行任何操作之前等待"deviceready" event,以确保框架已完全初始化并且您可以访问调用插件。

此外,您应该构建应用程序,而不是加载新页面,以便它是单页面应用程序,并根据需要从模板生成页面片段。除非您有其他首选解决方案,否则请尝试查看Handlebars之类的内容。我有一个完整的演示应用程序,使用这种方法,您可以查看here的源代码。