2 votes

Phonegap navigation ajax dans le chargement des pages

J'essaie de créer un index avec navigation qui, lorsqu'il est cliqué, charge les pages par ajax au lieu d'aller dans un autre html.

voici mon javascipt :

<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
    function getPage(){
            $.ajax({
                type: 'post',
                url: 'places.html',
                success: function(html)
                {
                    $("#response").fadeIn("slow");
                    $("#response").html(html);          

                }
            });     

            return false;       
        }
    </script>

J'ai une référence qui appelle ceci

<a href="" onclick="getPage();">get page</a>

Cela a fonctionné pour l'hôte local xampp mais semble générer une erreur dans phonegap

Uncaught ReferenceError: $ is not defined at file:///android_asset/www/index.html:129 

qui est la ligne où se trouve le $.ajax

1voto

Malek Hijazi Points 269

Vous devez attendre que l'appareil soit prêt pour effectuer un appel ajax.

document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
function getPage(){
        $.ajax({
            type: 'post',
            url: 'places.html',
            success: function(html)
            {
                $("#response").fadeIn("slow");
                $("#response").html(html);          

            }
        });     

        return false;       
    }
}

1voto

jhdj Points 631

Enfin, ajax a fonctionné, il fallait l'adresse complète du fichier et l'insérer dans documentready.

$.ajax({
        type: 'post',
        url: 'file:///android_asset/www/.html/places.html',
        success: function(html)
        {
            $("#response").fadeIn("slow");
            $("#response").html(html);          

        }
    });     

Une autre méthode que j'ai trouvée est la suivante

$("#getProfile").click(function() {
            var ajax = new XMLHttpRequest();
            ajax.open("GET","file:///android_asset/www/places.html",true);
            ajax.send();

            ajax.onreadystatechange=function(){
                if(ajax.readyState==4 && (ajax.status==200||ajax.status==0)){               
                    var theHTML = ajax.responseText;
                    document.getElementById('response').innerHTML = theHTML;
                }
            }

        });

Merci pour votre aide Malek

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X