【问题标题】:jQuery load() doesn't work on Phonegap Windows Phone 7.5jQuery load() 在 Phonegap Windows Phone 7.5 上不起作用
【发布时间】:2013-08-09 10:04:40
【问题描述】:

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

【问题讨论】:

    标签: jquery windows-phone-7 cordova


    【解决方案1】:

    使用 $.get 或 $.ajax 代替:

    function test(){
     $.get('text.txt', 
            function(data) {
               $("#text").html(data);
            },
            'text');
    }
    

    【讨论】:

    • 嘿!感谢你的回答!不幸的是,这也不起作用。
    • 你也可以添加一个失败回调方法来看看发生了什么:function test(){ $.get('text.txt', function(data) { $("#text").html(data); }, 'text').fail( function(xhr, textStatus, errorThrown) { alert(xhr.responseText);}); }
    【解决方案2】:

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

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

    不幸的是,这不是一个很好的答案,因为我不想去 www 获取已经存在于本地设备上的内容(更不用说我在 ios 和 android 上运行得很好)。希望这会有所帮助。

    【讨论】:

    • 我注意到了同样的事情。我也不想去网络服务器获取内容。奇怪。
    猜你喜欢
    • 2013-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-01
    • 1970-01-01
    相关资源
    最近更新 更多