2

我现在开始使用 Cordova 3.1.0。我使用命令行生成一个项目,然后修改现有代码。
我从官方网站复制并粘贴以下代码进行测试。

<!DOCTYPE html>
<html>
  <head>
    <title>InAppBrowser.addEventListener Example</title>

    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Wait for device API libraries to load
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // device APIs are available
    //
    function onDeviceReady() {
         var ref = window.open('http://apache.org', '_blank', 'location=yes');
         ref.addEventListener('loadstart', function(event) { alert('start: ' + event.url); });
         ref.addEventListener('loadstop', function(event) { alert('stop: ' + event.url); });
         ref.addEventListener('loaderror', function(event) { alert('error: ' + event.message); });
         ref.addEventListener('exit', function(event) { alert(event.type); });
    }

    </script>
  </head>
  <body>
  </body>
</html>

这行不通。没有警报。然后我添加了一个按钮来尝试触发事件。

<!DOCTYPE html>
<html>
  <head>
    <title>InAppBrowser.addEventListener Example</title>

    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type="text/javascript" charset="utf-8" src="jquery.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Wait for device API libraries to load
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // device APIs are available
    //
    function onDeviceReady() {
        $("#btn").click(function(){
            var ref = window.open('http://apache.org', '_blank', 'location=yes');
            ref.addEventListener('loadstart', function(event) { alert('start: ' + event.url); });
            ref.addEventListener('loadstop', function(event) { alert('stop: ' + event.url); });
            ref.addEventListener('loaderror', function(event) { alert('error: ' + event.message); });
            ref.addEventListener('exit', function(event) { alert(event.type); });
        });
    }

    </script>
  </head>
  <body>
    <button id="btn">trigger</button>
  </body>
</html>

这一次,它与第二次一起工作。这意味着,当我第一次单击按钮时它不起作用。但它在我第二次单击按钮时起作用。之后,我在回调函数中使用控制台日志进行调试。日志第一次没有出现(出现在第二次和第三次,第四次......)。
我真的不知道为什么会这样。我按照官方网站的所有步骤进行操作。创建项目,安装插件,构建等。
有人可以帮帮我吗?

4

2 回答 2

2

我遇到了同样的问题。在进一步调查中,我发现事件没有在模拟器/浏览器中触发,但在我进行测试的 Nexus 7 设备上触发良好。希望有帮助!

于 2013-11-19T11:33:18.643 回答
0

看起来这是最后一个 phonegap/cordova 版本 3.1.0 的问题。

https://groups.google.com/forum/#!topic/phonegap/e5_5unC2fYs

尝试旧版本。

于 2013-11-06T07:47:42.783 回答