1

我编写了一个 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 应用程序中工作?我究竟做错了什么?我将不胜感激任何帮助!

4

2 回答 2

0

改用 $.get 或 $.ajax :

function test(){
 $.get('text.txt', 
        function(data) {
           $("#text").html(data);
        },
        'text');
}
于 2013-08-09T10:28:22.753 回答
0

我遇到了同样的问题,当我尝试加载 $('').load('something.html') 时,在 Files.cs 中出现错误。

只是为了好玩,我将 html 放在我的设备可以访问的 Web 服务器上,并在该 html 资源上执行了 $.get 。这对我有用。

不幸的是,这不是一个很好的答案,因为我不想去 www 获取已经存在于本地设备上的内容(更不用说我在 ios 和 android 上的工作非常好)。希望这可以帮助。

于 2013-08-16T13:30:25.253 回答