在加载页面的Phonegap导航ajax

时间:2013-02-13 06:37:04

标签: android cordova

我正在尝试使用导航创建一个索引,点击后会通过ajax加载页面而不是转到另一个html

这是我的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>

我有一个调用此

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

这适用于xampp本地主机但似乎在phonegap中生成错误

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

这是$ .ajax所在的行

2 个答案:

答案 0 :(得分:1)

您必须等到设备准备好进行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;       
    }
}

答案 1 :(得分:1)

好的ajax最后工作需要完整的文件地址并将其放入documentready

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

        }
    });     

我发现的另一种方法是

$("#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;
                }
            }

        });

感谢Malek的帮助