Javascript/Phonegap必须在函数执行之前调用三次,然后再执行三次

Javascript/Phonegap必须在函数执行之前调用三次,然后再执行三次,javascript,function,cordova,Javascript,Function,Cordova,我正在尝试使用以下代码测试Phonegap()中的文件API: <html> <head> <title>PhoneGap File test</title> <script src="phonegap.js"></script> <script type="text/javascript" charset="utf-8"> function onDeviceReady

我正在尝试使用以下代码测试Phonegap()中的文件API:

<html>
  <head>
    <title>PhoneGap File test</title>

    <script src="phonegap.js"></script>

    <script type="text/javascript" charset="utf-8">


    function onDeviceReady() {
      alert("devceReady");
      window.requestFileSystem(LocalFileSystem.PERSISTENT, 0,
         successCallback, error);
    }

    function successCallback(fileSystem) {
      alert("successCallback");
      console.log(fileSystem.root);
      fileSystem.root.getDirectory("turdBurgle",
        {create: true, exclusive: false}, onGetDirectorySuccess,
        onGetDirectoryFail);
    }

    function error() {
      alert('error function fired');
    }

    function onGetDirectorySuccess(dir) {
      console.log("Created dir "+dir.name);
    }

    function onGetDirectoryFail(error) {
     console.log("Error creating directory "+error.code);
     }
    document.addEventListener("deviceready", onDeviceReady, false);


    </script>

    </head>
  <body>

    <script src="http://192.168.1.200:8080/target/target-script-min.js#anonymous"></script>
  </body>

PhoneGap文件测试
函数ondevicerady(){
警报(“devceReady”);
requestFileSystem(LocalFileSystem.PERSISTENT,0,
成功回调,错误);
}
函数成功回调(文件系统){
警报(“成功回调”);
log(fileSystem.root);
fileSystem.root.getDirectory(“turdBurgle”,
{create:true,exclusive:false},onGetDirectorySuccess,
onGetDirectoryFail);
}
函数错误(){
警报(“触发错误函数”);
}
函数onGetDirectorySuccess(dir){
console.log(“创建目录”+dir.name);
}
函数onGetDirectoryFail(错误){
log(“创建目录时出错”+错误代码);
}
文件。添加的监听器(“deviceready”,OnDeviceraddy,false);

起初,我认为根本没有发生任何事情。控制台中没有任何东西表明onDeviceReady已开火。然而,当我在正文中添加了一个按钮,并给出了
onClick
启动
ondevicerady
的指令后,我发现在三次按钮点击后,
ondevicerady
确实启动了。。。但它发射了三次。除此之外,一切都按照您的预期进行。。。在正确的位置创建目录,没有错误


我已尝试添加一个
onLoad
侦听器,以确保在deviceready尝试执行
successCallback
之前加载DOM,但症状保持不变。

清楚地显示更多代码。很高兴。不幸的是,没有太多的代码可以显示,因为这只是一个API测试。我编辑了这篇文章,以显示当前代码的全部内容。警报只是在屏幕上向我显示正在发生的事情,我不必查看控制台,但症状保持不变。正文底部的脚本src是运行本地版本的weinre进行调试所需的脚本。