我编写了一个phonegap应用程序,它利用jQuery load()函数从本地文件加载内容。它适用于iOS和Android,但它不适用于Windows Phone 7.5。我已经搜索过这个问题,但我无法在任何地方找到解决方案。问题是load()函数在Windows Phone浏览器中有效,但在打包为phonegap应用程序时则无效。
以下是一些示例代码。 index.html文件:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>Test</title>
<script src="scripts/jquery-2.0.3.min.js" charset="UTF-8"></script>
<script src="scripts/jquery.mobile-1.3.2.min.js" charset="UTF-8"></script>
<script src="scripts/functions.js" charset="UTF-8"></script>
<link rel="stylesheet" href="css/jquery.mobile-1.3.2.min.css" charset="UTF-8" />
</head>
<body>
<div id="#start" data-role="page">
<div data-role="content" id="start">
<div id="text"></div>
<div data-role="controlgroup">
<a href="#bonesida" data-role="button" onClick="test();">Test it!</a>
</div>
<div id="text"></div>
</div><!-- /content -->
</div>
</body>
</html>
functions.js文件:
function test() {
$('#text').load('text.txt');
}
text.txt文件:
Here's some text.
我想它与相同的源策略有关,但这是与其他文件位于同一目录中的本地文件。或者它是错误的本地URL?我也尝试使用绝对URL(x-wmapp1:/app/www/test.txt),但这也不起作用。
是否可以让load()函数在Windows Phone上的Phonegap应用程序中运行?我究竟做错了什么?我非常感谢任何帮助!
答案 0 :(得分:0)
使用$ .get或$ .ajax代替:
function test(){
$.get('text.txt',
function(data) {
$("#text").html(data);
},
'text');
}
答案 1 :(得分:0)
我遇到了同样的问题,当我尝试加载$('')时,我在Files.cs中抛出一个错误.load('something.html')。
为了解决问题,我将html放在我的设备可以访问的Web服务器上,并在该html资源上执行$ .get。这对我有用。
不幸的是,这不是一个非常好的答案,因为我不想到www去寻找已经驻留在本地设备上的内容(更不用说我在ios和android上工作得很好了) )。希望这会有所帮助。