Функция jquery .load () не работает под пробелом - PullRequest
1 голос
/ 24 сентября 2011

Функция jquery .load () не работает под пробелом на iPad. это работает в мобильном сафари очень хорошо. Но это не работает в приложении PhoneGap. Любая помощь будет оценена.

ОБНОВЛЕНИЕ: Вот как выглядит код:

this.image_container.load( function(response, status, xhr) {
    var dis = this;
    var imgWidth = dis.image_container.width();
    var imgHeight = dis.image_container.height();

    dis.containerEl.css({
        //some css addition
    }).animate( { "opacity": "1" }, 400, "linear" );
});

При отладке ответ сервера -

{"responseText":"","status":404,"statusText":"error"}

Но я получаю это только в iPad PhoneGap. В мобильном сафари он просто отлично работает.

Заранее спасибо.


Это все еще не работает. Вот фрагмент кода:

this.image_container.load( function(response, status, xhr) {
  var dis = this;
  var imgWidth = dis.image_container.width();
  var imgHeight = dis.image_container.height();
  dis.containerEl.css({
    //some css addition
  }).animate( { "opacity": "1" }, 400, "linear" );
});

При отладке ответ сервера

{"responseText":"","status":404,"statusText":"error"}

Но я получаю это только в телефонной щели iPad. В мобильном сафари он просто отлично работает.

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 27 сентября 2011

Попробуйте использовать полный URL.

AFAIK PhoneGap фактически служит локальными файлами. Если вы хотите получить доступ к внешним ресурсам или Ajax, включите в URL протокол, домен и порт (при необходимости).

0 голосов
/ 25 сентября 2011

Я попробовал это, и оно отлично работало как на эмуляторе Android, так и на симуляторе iOS.

<!DOCTYPE html> 
<html>
    <head>
    <meta charset="UTF-8">
    <title>jQuery Remote</title>
    <link href="jquery-mobile/jquery.mobile-1.0b3.min.css" rel="stylesheet" type="text/css"/>
    <script src="jquery-mobile/jquery.min.js" type="text/javascript"></script>
    <script src="jquery-mobile/jquery.mobile-1.0b3.min.js" type="text/javascript"></script>

    <script src="phonegap.js" type="text/javascript"></script>

    <script type="text/javascript">
        $(function(){           
            $('#test1').load('index2.html');  // Local Call - This is just a file in the same project called index2.html with the word "Test" in it
            $('#test2').load('http://www.twitter.com/help/test.json');  // Remote call
            $('#test3').load('http://www.12robots.com/index.cfm .body');  // Another remote call
        });



    </script>
    </head> 
    <body> 

        <div data-role="page" id="page">
            <div data-role="header">
                <h1>Page One</h1>
            </div>
            <div data-role="content">
                <div id="test1"></div>
                <div id="test2"></div>
                <div id="test3"></div>
            </div>
        </div>
    </body>
</html>

Я заметил, что когда я пытался загрузить весь HTML-документ (включая заголовок, тело, HTML-теги), у меня был только белый экран.Но когда я только пытаюсь загрузить часть документа (например, просто div внутри тела, как мой третий пример ниже), он работает нормально.Я подозреваю, что браузеру просто не нравится структура:

<html>
    <head>
    </head>

    <body>
        <div>
            <html>
                <head>
                </head>

                <body>
                </body>
            </html>
        </div>
    </body>
</html>

Я не виню это, мне это тоже не нравится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...