phonegap ios - jquery 不工作
Posted
技术标签:
【中文标题】phonegap ios - jquery 不工作【英文标题】:phonegap ios - jquery not working 【发布时间】:2015-11-20 12:58:04 【问题描述】:当我在页面中放置带有 jQuery 的脚本标签时,$('body') 的结果是空数组。并且 Safari 控制台中没有错误。 我试图将它粘贴到正文中,在cordova.js之前和之后的头部,尝试从CDN加载它并加载本地文件,结果相同。 在 android 上一切正常。
我的代码:
<!DOCTYPE html>
<html lang="en" ng-app="wApp">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Page</title>
<link rel="stylesheet" href="app.css">
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8" src="libs/jquery.js"></script>
<script>
console.log("jQuery: ", jQuery, $);
$(function()
console.log('Dom Ready');
console.log('Body element: ', $('body'));
);
</script>
</head>
<body>
//// HTML content here
//// Angular scripts here
</body>
</html>
这段代码在模拟器上运行时的控制台结果是:
jQuery: function ( selector, context )
// The jQuery object is actually just the init constructor 'enhanced'
return new jQuery.fn.init( selector, context, rootjQuery );
function ( selector, context )
// The jQuery object is actually just the init constructor 'enhanced'
return new jQuery.fn.init( selector, context, rootjQuery );
Dom Ready
Body element: []
我尝试一一删除其他脚本,只有 jQuery 脚本会影响此行为。并且仅在 ios 中。
【问题讨论】:
您必须等待 cordova deviceready 事件。阅读文档。 【参考方案1】:每当您加载应用程序时,Cordova 都会创建自己的视图,有点像 Web 视图,因此不会立即创建。为了解决这个问题,cordova 在 DOM 加载时触发 deviceready
事件。要得到这个,请使用document.addEventListener("deviceready", yourCallbackFunction, false);
所以<head>
标记中的脚本应该如下所示:
function deviceLoaded()
console.log("jQuery: ", jQuery, $);
$(function()
console.log('Dom Ready');
console.log('Body element: ', $('body'));
);
document.addEventListener("deviceready", deviceLoaded, false);
【讨论】:
Vector Pointer to documentation ondeviceready
来自Top Mistakes by Developers new to Cordova/Phonegap的事件
我忘了告诉它。我有一个“设备就绪”代码块,我将事件绑定到硬件按钮,所以我知道设备就绪,但感谢您的尝试。如果我将示例移至本节,结果是相同的。此外,在我的示例中,“Dom 就绪”功能会触发,因此“body”标签必须存在,无论设备处于何种就绪状态以上是关于phonegap ios - jquery 不工作的主要内容,如果未能解决你的问题,请参考以下文章
使用Phonegap Web应用程序在iOS上对Web的JQuery AJAX调用停止工作
jQuery Mobile phonegap 垂直内容仅限于 IOS 上的视口