求求大家帮忙改个bug !!

大家帮忙看看这是什么原因啊, 求代码详细解答

function exitApp(){
    navigator.app.exitApp();
}
/****************文件上传****************/
//cordovaFlag是否有phonegap环境,从而决定是否调用本地方法
var cordovaFlag = false;
var uploadFileUrl = null;
document.addEventListener("deviceready", onDeviceReady, false);
var pictureSource; //  getPicture:数据来源参数的一个常量
var destinationType; // getPicture中:设置getPicture的结果类型
function onDeviceReady() {
    pictureSource = navigator.camera.PictureSourceType;
    destinationType = navigator.camera.DestinationType;
    cordovaFlag = true;
    //getContacts();
    //showComfire("提示!","测试对话框",function(index){
     //       alert(index);
    //});
}
/**
 * 读取联系人
 */
function getContacts(){
// find all contacts
    var options = new ContactFindOptions();
    options.filter = "";//搜索条件
    options.multiple = true;
    var filter = ["displayName", "phoneNumbers"];
    navigator.contacts.find(filter, function(contacts){
        for (var i = 0; i < contacts.length; i++) {
            //for (var j = 0; j < contacts[i].phoneNumbers.length; j++) {
            //    alert(contacts[i].displayName+":"+contacts[i].phoneNumbers[j]);
            //}
            alert(contacts.length+":"+JSON.stringify(contacts[i]));
        }
    }, function(contactError){
        alert('onError!');
    }, options);
}

function getMsgs(){

}

function showComfire(title,msg,callback){
    navigator.notification.confirm(
        msg,
        function(buttonIndex){
            callback && callback(buttonIndex);
        },
        title,
        ['确定','取消']
    );
}

function getFilePic(source, element) {
    navigator.camera.getPicture(function (imageURI) {
        uploadFileUrl = imageURI;
        if(element){
            $("#" + element).attr("src", imageURI);
        }else{
            $("#path") && $("#path").text(imageURI);
            $("#path2") && $("#path2").text(imageURI);
        }

    }, function () {
        if (source == pictureSource.CAMERA)
            console.log('加载照相机出错!');
        else
            console.log('加载相册出错!');
    }, {
        quality: 50,
        destinationType: destinationType.FILE_URI,
        sourceType: source
    });
}

function getFileAttach(callback) {
    navigator.camera.getPicture(function (imageURI) {
        callback && callback(imageURI);
    }, function () {

    }, {
        quality: 50,
        destinationType: destinationType.FILE_URI,
        sourceType: 0
    });
}

function captureSound(){
    navigator.device.capture.captureAudio(captureSuccess, captureError, {limit:1});
}

// capture callback
var captureSuccess = function(mediaFiles) {
    changePage("lushuaddpage","none");
    var i, path, len;
    for (i = 0, len = mediaFiles.length; i < len; i += 1) {
        path = mediaFiles[i].fullPath;
        uploadFileUrl = path;
        $("#soundbar").attr("src",path);
        // do something interesting with the file
    }
};

// capture error callback
var captureError = function(error) {
    navigator.notification.alert('Error code: ' + error.code, null, 'Capture Error');
};

// start audio capture


/**
 * 上传意外终止处理。
 * @param message
 */
function uploadBroken(message) {
    alert(message);
};

/**
 * 上传过程回调,用于处理上传进度,如显示进度条等。
 */
function uploadProcessing(progressEvent) {

    if (progressEvent.lengthComputable) {
        //已经上传
        var loaded = progressEvent.loaded;
        //文件总长度
        var total = progressEvent.total;
        //计算百分比,用于显示进度条
        var percent = parseInt((loaded / total) * 100);
        showLoader("正在上传文件:" + percent + "%");
        //换算成MB
        //loaded=(loaded/1024/1024).toFixed(2);
        //total=(total/1024/1024).toFixed(2);
    }
};

/**
 * 选择文件后回调上传。
 */
function uploadFile(fileURI, url, success, fail) {
    var options = new FileUploadOptions();
    options.fileKey = "file";
    options.fileName = fileURI.substr(fileURI.lastIndexOf('/') + 1);
    options.mimeType = "multipart/form-data";
    options.chunkedMode = false;
    ft = new FileTransfer();
    var uploadUrl = encodeURI(url);
    console.log(fileURI);
    ft.upload(fileURI, uploadUrl, success, fail, options);
    //获取上传进度
    ft.onprogress = uploadProcessing;
}


function localFile(fileUrl,filename) {
    fileUrl = fileUrl || downloadUrl+"?fileName="+focusobj.attach;
    filename = filename || focusobj.attach;
    window.requestFileSystem(LocalFileSystem.PERSISTENT,  5*1024*1024, function(fileSystem){
        //创建目录
        fileSystem.root.getDirectory("file_mobile", {create:true},
            function(fileEntry){ },
            function(){  console.log("创建目录失败");});

        var _localFile = "file_mobile/"+filename;
        var _url = fileUrl;
        //查找文件
        fileSystem.root.getFile(_localFile, null, function(fileEntry){
            //文件存在就直接显示
            showLoader("文件已经下载过了!",true);
        }, function(){
            //否则就到网络下载图片!
            fileSystem.root.getFile(_localFile, {create:true}, function(fileEntry){
                var targetURL = fileEntry.toURL();
                download(_url,targetURL);
            },function(){
                alert('下载图片出错');
            });
        });

    }, function(evt){
        console.log("加载文件系统出现错误");
    });
}


function download(fileUrl,targetUrl){
    showLoader("正在下载请稍候!");
    var fileTransfer = new FileTransfer();
    var uri = encodeURI(fileUrl);

    fileTransfer.download(uri,targetUrl,
        function(entry) {
            showLoader("下载成功,文件已保存到file_mobile文件夹下",true);
            console.log("download complete: " + entry.fullPath);
        },
        function(error) {
            console.log("download error source " + error.source);
            console.log("download error target " + error.target);
            console.log("upload error code" + error.code);
        },
        false
    );
}

/**
 * 上传成功回调.
 * @param r
 */
function uploadSuccess(r) {
    alert('文件上传成功:' + r.response);
}

/**
 * 上传失败回调.
 * @param error
 */
function uploadFailed(error) {
    alert('上传失败了。');
}

/****************文件上传结束****************/
function openJisuanqi(){
    cordova.exec(function(data){

    }, null, "Plugs", "jisuanqi", []);
}


function toBaidu(){
    cordova.exec(function(){},function(){},"Plugs","tobaidu",[{city: "",str:""}]);
}

function toDail(el){
    var tel = $(el).text();
    tel = tel.split(":")[1];
    cordova.exec(function(){},function(){},"Plugs","toDail",[{tel:tel}]);
}

function toAddress(el){
    var address = $(el).text();
    address = address.split(":")[1];
    cordova.exec(function(){},function(){},"Plugs","toAddress",[{address:address}]);
}

function toFocusAdressMap(){
    var address = focusgood.title;
    cordova.exec(function(){},function(){},"Plugs","toAddress",[{address:address}]);
}

function uplaodImg(callback){
    if(uploadFileUrl){
        uploadFile(uploadFileUrl,uploadUrl,function(r){
            var img = r.response;
            callback && callback(img);
        },function(error){
            showLoader(error,true);
        });
    }else{
        showLoader("请选择图片!",true);
        callback && callback("");
    }
}

function uploadAttach(fileUrl,callback){
    if(fileUrl){
        uploadFile(fileUrl,uploadUrl,function(r){
            var img = r.response;
            callback && callback(img);
        },function(error){
            showLoader(error,true);
        });
    }else{
        showLoader("请选择图片!",true);
    }
}
<!DOCTYPE html>

<html>
<head>
    <meta charset="utf-8"/>
    <meta name="format-detection" content="telephone=no"/>
    <!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes. See https://issues.apache.org/jira/browse/CB-4323 -->
    <!--<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />-->
    <meta name="viewport" content="width=320; user-scalable=no"/>
    <link rel="stylesheet" type="text/css" href="jb/jquery.mobile-1.4.5.css"/>
    <link rel="stylesheet" type="text/css" href="jb/theme-classic.css"/>
    <link rel="stylesheet" type="text/css" href="jb/style.css"/>
    <script type="text/javascript" src="jb/jquery.js"></script>
    <script type="text/javascript" src="jb/jquery.mobile-1.4.5.js"></script>
    <script type="text/javascript" src="jb/iscroll.js"></script>
    <script type="text/javascript" src="jslib/hammer.js"></script>
    <script type="text/javascript" src="js/commontools.js"></script>
    <script type="text/javascript" src="js/jbtool.js"></script>
    <script type="text/javascript" src="js/app.js"></script>
    <script type="text/javascript" src="js/user.js"></script>
    <script type="text/javascript" src="js/yewu.js"></script>
    <title>学习</title>

    <style type="text/css" media="all">
        #wrapper {
            padding: 0;
            position: absolute;
            z-index: 1;
            top: 40px;
            bottom: 40px;
            left: 0;
            width: 100%;
            overflow: auto;
        }

        #scroller {
            position: absolute;
            z-index: 1;
            -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
            width: 100%;
            padding: 0;
        }
    </style>

</head>
<body>
<!--用户模块---------------------------------------------------------------------------------->
<div data-role="page" data-control-title="Login" id="loginpage" data-theme="b">
    <div data-role="header" data-theme="a">
        <h1 class="ui-title">
            用户登陆
        </h1>
    </div>
    <div role="main" class="ui-content">
        <form id="loginform" name="loginform">
            <div class="ui-field-contain" data-controltype="textinput">
                <label>
                    用户名:
                </label>
                <input id="lusername" name="username" placeholder="" value="" type="text">
            </div>
            <div class="ui-field-contain" data-controltype="textinput">
                <label>
                    密码:
                </label>
                <input id="lpasswd" name="passwd" placeholder="" value="" type="password">
            </div>
            <div class="ui-field-contain" data-controltype="textinput">
                <label for="remember">
                    自动登陆:
                </label>
                <select name="remember" id="remember" data-theme="" data-role="slider">
                    <option value="0">
                        Off
                    </option>
                    <option selected="selected" value="1">
                        On
                    </option>
                </select>
            </div>
        </form>
        <a href="#" onclick="login();" class="ui-btn ui-btn-a">
            登陆
        </a>
        <a href="#" onclick="toRegister();" class="ui-btn ui-btn-a">
            注册
        </a>
    </div>
</div>

<div data-role="page" data-theme="b" data-control-title="Register" id="registerpage">
    <div  data-role="header">
        <h1 class="ui-title">
            快速注册
        </h1>
    </div>
    <div role="main" class="ui-content">
        <form id="registerform">
            <!--<div  class="ui-field-contain" data-controltype="textinput">
                <label>
                    头像:
                </label>
                <img  id="rmyImage1" src="" style="width: 100%;" >
                <a href="#" onclick="getFilePic(0,'rmyImage1');" class="ui-btn ui-btn-a">
                    选择图片
                </a>
                <a href="#" onclick="getFilePic(1,'rmyImage1');" class="ui-btn ui-btn-a">
                    拍照
                </a>
            </div>-->
            <div class="ui-field-contain" data-controltype="textinput">
                <label>
                    用户名:
                </label>
                <input name="username" placeholder="必填" value="" type="text">
            </div>
            <div class="ui-field-contain" data-controltype="textinput">
                <label>
                    密码:
                </label>
                <input name="passwd" placeholder="必填" value="" type="password">
            </div>
            <div class="ui-field-contain" data-controltype="textinput">
                <label>
                    密码重复:
                </label>
                <input name="passwd2" placeholder="必填" value="" type="password">
            </div>
            <div class="ui-field-contain" data-controltype="textinput">
                <label>
                    电话:
                </label>
                <input name="tel" placeholder="必填" value="" type="number">
            </div>
            <!--<div class="ui-field-contain" data-controltype="textinput">
                <label>
                    地址:
                </label>
                <input name="address" placeholder="必填" value="" type="text">
            </div>-->
            <!--<div class="ui-field-contain" data-controltype="textinput">
                <label>
                    QQ:
                </label>
                <input name="qq" placeholder="" value="" type="text">
            </div>
            <div class="ui-field-contain" data-controltype="textinput">
                <label>
                    微信:
                </label>
                <input name="wechat" placeholder="" value="" type="text">
            </div>-->
            <div class="ui-field-contain" data-controltype="textinput">
                <label>
                    邮箱:
                </label>
                <input name="email" placeholder="" value="" type="email">
            </div>
            <div class="ui-field-contain" data-controltype="dateinput">
                <label>
                    生日:
                </label>
                <input name="birth" placeholder="" value="" type="date">
            </div>
            <div class="ui-field-contain" data-controltype="selectmenu">
                <label>
                    性别:
                </label>
                <select name="sex">
                    <option value="男">
                        男
                    </option>
                    <option value="女">
                        女
                    </option>
                </select>
            </div>
        </form>
        <a href="#" onclick="register();" class="ui-btn ui-btn-b">提交</a>
        <a href="#" onclick="toLogin();" class="ui-btn ui-btn-b">取消</a>
    </div>
</div>

<div data-role="page" data-theme="b" data-control-title="Userinfo" id="userinfopage">
    <div  data-role="header">
        <h1 class="ui-title">
              个人信息
        </h1>
        <a href="#" onclick="editUserInfo();" data-icon="edit" data-iconpos="left" class="ui-btn ui-btn-right ui-icon-edit ui-btn-icon-left">
            修改
        </a>
        <a href="#" onclick="goback();" data-icon="back" data-iconpos="left" class="ui-btn ui-btn-left ui-icon-back ui-btn-icon-left">
            返回
        </a>
    </div>
    <div role="main" class="ui-content">
        <form id="userform">

            <div id="gereninfo" class="ui-field-contain" data-controltype="textinput">
                <label id="vusername">
                    用户名:
                </label>
            </div>
            <div class="ui-field-contain" data-controltype="textinput">
                <label>
                    电话:
                </label>
                <input name="tel" id="vtel" placeholder="" value="" type="text">
            </div>
            <!--<div class="ui-field-contain" data-controltype="textinput">
                <label>
                    QQ:
                </label>
                <input name="qq" id="vqq" placeholder="" value="" type="text">
            </div>
            <div class="ui-field-contain" data-controltype="textinput">
                <label>
                    微信:
                </label>
                <input name="wechat" id="vwechat" placeholder="" value="" type="text">
            </div>-->
            <div class="ui-field-contain" data-controltype="textinput">
                <label>
                    邮箱:
                </label>
                <input name="email" id="vemail" placeholder="" value="" type="email">
            </div>
            <div class="ui-field-contain" data-controltype="dateinput">
                <label>
                    生日:
                </label>
                <input name="birth" id="vbirth" placeholder="" value="" type="date">
            </div>
            <div class="ui-field-contain" data-controltype="selectmenu">
                <label>
                    性别:
                </label>
                <select name="sex" id="vsex">
                    <option value="男" selected="selected">
                        男
                    </option>
                    <option value="女">
                        女
                    </option>
                </select>
            </div>
        </form>
        <div id="editbutton" style="display: none">
            <a href="#" onclick="updateUserInfo();" class="ui-btn ui-btn-b">提交</a>
            <a href="#" onclick="goback();" class="ui-btn ui-btn-b">取消</a>
        </div>
    </div>
</div>

<div data-role="page" data-theme="b" data-control-title="ChangePasswd" id="passwdpage">
    <div  data-role="header">
        <h1 class="ui-title">
                 修改密码
        </h1>
        <a href="#" onclick="goback();" data-icon="back" data-iconpos="left" class="ui-btn ui-btn-left ui-icon-edit ui-btn-icon-left">
                  返回
        </a>
    </div>
    <div role="main" class="ui-content">
        <form id="passwdform">
            <div class="ui-field-contain" data-controltype="textinput">
                <label id="pusername">
                    用户名:
                </label>
            </div>
            <div class="ui-field-contain" data-controltype="textinput">
                <label>
                    原始密码:
                </label>
                <input name="oldpasswd" placeholder="" value="" type="password">
            </div>
            <div class="ui-field-contain" data-controltype="textinput">
                <label>
                    新密码
                </label>
                <input name="passwd" placeholder="" value="" type="password">
            </div>
            <div class="ui-field-contain" data-controltype="textinput">
                <label>
                    密码重复
                </label>
                <input name="passwd2" placeholder="" value="" type="password">
            </div>
        </form>
        <a href="#" onclick="changePasswd();" class="ui-btn ui-btn-b">提交</a>
        <a href="#" onclick="goback();" class="ui-btn ui-btn-b">取消</a>
    </div>
</div>


<div data-role="page" data-theme="b" id="morepage">
    <div data-theme="b" data-role="header" data-position="fixed">
        <h1 class="ui-title">
            我的
        </h1>

    </div>
    <div role="main" class="ui-content">
        <ul data-role="listview" data-theme="b" data-inset="false">
            <li onclick="toTest(1);"><h2>自我测试</h2></li>
            <!--<li><a href="#" onclick="toAddPage();">上传资料</a></li>-->
            <li onclick="myinfo();"><h2>个人信息</h2></li>
            <li onclick="toChangePasswd();"><h2>修改密码</h2></li>
            <li onclick="logout();"><h2>注销登录</h2></li>
            <li onclick="exitApp();"><h2>退出</h2></li>
        </ul>
    </div>
    <div data-role="footer" data-position="fixed" data-theme="b">
        <div data-role="navbar">
            <ul>
                <li><a href="javascript:tonav(2);" data-icon="home">公告</a></li>
                <li><a href="javascript:tonav(3);" data-icon="star">视频</a></li>
                <li><a href="javascript:tonav(4);" data-icon="comment">资料</a></li>
                <li><a href="javascript:morePage();" data-icon="info">我的</a></li>
            </ul>
        </div>
    </div>
</div>
<!--用户模块结束--------------------------------------------------------------------------------------------------------------------------------------->



<div data-role="page" data-theme="b"  id="kecheng">
    <div  data-role="header" data-position="fixed">
        <h1 class="ui-title">
            公告列表
        </h1>

    </div>
    <div role="main" class="ui-content" >
        <ul id="dongtailist" data-role="listview" data-filter="true" data-filter-placeholder="输入关键字..." data-inset="true" >

        </ul>
    </div>
    
    <div data-role="footer" data-theme="b" data-position="fixed" style="overflow: hidden;">
        <div data-role="navbar">
            <ul>
                <li><a href="javascript:tonav(2);" data-icon="home">公告</a></li>
                <li><a href="javascript:tonav(3);" data-icon="star">视频</a></li>
                <li><a href="javascript:tonav(4);" data-icon="comment">资料</a></li>
                <li><a href="javascript:morePage();" data-icon="info">我的</a></li>
            </ul>
        </div>
    </div>
    
</div>

<div data-role="page"  data-theme="c" id="shipinpage">
    <div data-theme="b" data-role="header" data-position="fixed">
        <h1 class="ui-title">
            教学视频
        </h1>


        <!--<a href="#" onclick="toMyBill();" data-iconpos="right" class="ui-btn ui-btn-right ui-icon-user ui-btn-icon-left">
            内容定制
        </a>-->
    </div>
    <div role="main" class="ui-content">
        <ul id="shipinlist" data-role="listview" data-filter="true" data-filter-placeholder="输入视频名称..." data-inset="true" >

        </ul>
    </div>
    <div data-role="footer" data-theme="b" data-position="fixed" style="overflow: hidden;">
        <div data-role="navbar">
            <ul>
                <li><a href="javascript:tonav(2);" data-icon="home">公告</a></li>
                <li><a href="javascript:tonav(3);" data-icon="star">视频</a></li>
                <li><a href="javascript:tonav(4);" data-icon="comment">资料</a></li>
                <li><a href="javascript:morePage();" data-icon="info">我的</a></li>
            </ul>
        </div>
    </div>
</div>

<div data-role="page"  data-theme="c" id="ziliaopage">
    <div data-theme="b" data-role="header" data-position="fixed">
        <h1 class="ui-title">
            资料下载
        </h1>


        <!--<a href="#" onclick="toMyBill();" data-iconpos="right" class="ui-btn ui-btn-right ui-icon-user ui-btn-icon-left">
            内容定制
        </a>-->
    </div>
    <div role="main" class="ui-content">
        <ul id="ziliaolist" data-filter="true" data-filter-placeholder="输入视频名称..."  data-role="listview" data-inset="true" >

        </ul>
    </div>
    <div data-role="footer" data-theme="b" data-position="fixed" style="overflow: hidden;">
        <div data-role="navbar">
            <ul>
                <li><a href="javascript:tonav(2);" data-icon="home">公告</a></li>
                <li><a href="javascript:tonav(3);" data-icon="star">视频</a></li>
                <li><a href="javascript:tonav(4);" data-icon="comment">资料</a></li>
                <li><a href="javascript:morePage();" data-icon="info">我的</a></li>
            </ul>
        </div>
    </div>
</div>

<div data-role="page" data-theme="c" data-control-title="Register" id="detail">
    <div data-theme="b" data-role="header">
        <h1 class="ui-title" id="commh1">

        </h1>
        <a href="#" onclick="goback();" data-iconpos="left" class="ui-btn ui-btn-left ui-icon-back ui-btn-icon-left">
            返回
        </a>
    </div>
    <div role="main" class="ui-content">
        <div class="ui-field-contain" data-controltype="textinput">
            <label id="vtitle">

            </label>
            <input type="hidden" id="pid">
        </div>
        <div class="ui-field-contain" data-controltype="textinput">
            <label id="vndate">

            </label>
        </div>
        <div id="img" class="ui-field-contain" data-controltype="textinput">
            <img width="100%" id="vimg" onclick="ownpage(this);">
        </div>
        <div id="video" class="ui-field-contain" data-controltype="textinput">
            <video width="100%" id="vvideo" controls="controls"></video>
        </div>
        <div id="ziliao" class="ui-field-contain" data-controltype="textinput">
            <a href="#" id="vziliao"></a>
        </div>
        <div class="ui-field-contain" data-controltype="textinput">
            <label id="vnote">

            </label>
        </div>


        <div class="ui-field-contain" id="xiazai" data-controltype="textinput">
            <a href="#" onclick="localFile();" class="ui-btn ui-btn-b">
                下载
            </a>
        </div>

        <ul data-role="listview" data-split-icon="minus" id="replaylv" data-inset="true">

        </ul>
        <textarea id="replaynote"></textarea>

        <a href="#" onclick="addReplay();" class="ui-btn ui-btn-b">发表评论</a>
    </div>
</div>



<div data-role="page" data-theme="b" data-control-title="Register" id="addpage">
    <div  data-role="header">
        <h1 class="ui-title">
            上传资料
        </h1>
    </div>
    <div role="main" class="ui-content">
        <form id="addform">
            <div  class="ui-field-contain" data-controltype="textinput">
                <label id="ziliaotitle">
                </label>
                <img  id="rmyImage1" src="" style="width: 100%;" >
                <a href="#" onclick="getFilePic(0,'ziliaotitle');" class="ui-btn ui-btn-a">
                    选择文件
                </a>
            </div>
            <div class="ui-field-contain" data-controltype="textinput">
                <label>
                    分类:
                </label>
                <select name="bigtypeid" id="bigtypeid">
                    <option value="4">资料</option>
                    <option value="3">视频</option>
                </select>
            </div>

            <div class="ui-field-contain" data-controltype="textinput">
                <label>
                    名称:
                </label>
                <input name="title" placeholder="必填" value="" type="text">
            </div>
            <div class="ui-field-contain" data-controltype="textinput">
                <label>
                    描述:
                </label>
                <textarea name="note"></textarea>
            </div>

        </form>
        <a href="#" onclick="addObj();" class="ui-btn ui-btn-b">提交</a>
    </div>
</div>




<div data-role="page" data-theme="c" data-control-title="imgshow" id="imgshow">
    <div id="imgcontaner">
        <img style="width: 100%;position: absolute;top: 0px;left: 0px" id="showimg">
        <a href="#" onclick="goback();" data-icon="back" data-iconpos="left" class="ui-btn ui-btn-left ui-icon-back ui-btn-icon-left">
            返回
        </a>
    </div>
</div>
</body>


<script type="text/javascript" src="cordovatool/cordovatools.js"></script>
</html>

 

找不到LocalFileSystem.PERSISTENT