jQuery load()在Phonegap Windows Phone 7.5上不起作用

时间:2013-08-09 10:04:40

标签: jquery windows-phone-7 cordova

我编写了一个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应用程序中运行?我究竟做错了什么?我非常感谢任何帮助!

2 个答案:

答案 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上工作得很好了) )。希望这会有所帮助。