PhoneGap Cordova 3.1.0 inAppBrowser EventListener无法正常工作

时间:2013-10-25 13:48:10

标签: javascript android jquery cordova

我现在开始使用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>

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

2 个答案:

答案 0 :(得分:2)

我遇到了同样的问题。经过进一步调查,我发现这些事件并未在模拟器/浏览器中触发,但在我进行测试的Nexus 7设备上被解雇了。希望有所帮助!

答案 1 :(得分:0)

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

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

尝试旧版本。