Phonegap 3.5.0第一次加载页面时没有加载本地javascript文件

时间:2014-06-19 13:42:08

标签: javascript ios cordova

我在iOS 7.1(模拟器和设备)中的PhoneGap 3.5中遇到了一个奇怪的问题。 MacOSX中的FireFox中出现了一个非常相似(可能相同)的问题。

当我点击调用JavaScript函数的jQuery定义按钮时,它会失败,因为函数未定义。如果我加载Safari的调试器并查看页面 - <javascript>中缺少所包含函数的<head>行。

但是,如果我点击Safari调试器中的“重新加载”图标,则会加载所有JavaScript文件并定义函数。所以 - 这告诉我文件都在那里。

在FireFox中也是如此 - 第一次加载页面时没有出现控制台消息;重装后他们工作正常。

它闻起来像某种竞争条件或加载订单问题。但如果是加载顺序 - 为什么JavaScript不会抛出错误?

 <head>
    <meta charset="utf-8"/>
    <meta name="viewport" content="width=device-width, initial-scale=1"/>
    <title>ABR Practice Examination2</title>
    <script type="text/javascript" src="../js/jquery/jquery-1.11.0.min.js"></script>
    <script type="text/javascript" src="../js/jquery/jquery.mobile-1.4.2.min.js"></script>
    <script type="text/javascript">
        console.log("Before jquery.mobile-1.4.2.min.css load");
    </script>
    <link rel="stylesheet" href="../js/jquery/jquery.mobile-1.4.2.min.css"/>
    <script type="text/javascript">
        console.log("Before qm-demos.css load");
    </script>
    <link rel="stylesheet" href="../css/jqm-demos.css"/>
    <link rel="shortcut icon" href="../favicon.ico"/>
    <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Open+Sans:300,400,700"/>
    <script type="text/javascript">
        console.log("Before cordova.js load");
    </script>
    <script type="text/javascript" src="../cordova.js"></script>
    <script type="text/javascript">
        console.log("Before index.js load");
    </script>
    <script type="text/javascript" src="../js/index.js"></script>
    <script type="text/javascript">
        console.log("Before DicomStudy.js load");
    </script>
    <script type="text/javascript" src="../plugins/DicomStudy.js"></script>
    <script type="text/javascript">
        console.log("Before ABRUtils.js load");
    </script>
    <script type="text/javascript" src="../js/ABRUtils.js"></script>

</head>

所以 - 第一次加载页面时 - 控制台中没有显示任何控制台消息。如果我重新加载 - 全部显示。我错过了什么?

1 个答案:

答案 0 :(得分:0)

听起来像是

  1. 您可能没有正确编译并且正在加载错误的cordova.js
  2. 未正确定义deviceReady,因此页面无法启动