我在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>
所以 - 第一次加载页面时 - 控制台中没有显示任何控制台消息。如果我重新加载 - 全部显示。我错过了什么?
答案 0 :(得分:0)
听起来像是