微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

科尔多瓦InAppBrowser弹出窗口在第一次时的行为有所不同

如何解决科尔多瓦InAppBrowser弹出窗口在第一次时的行为有所不同

我正在使用带有InAppbrowser插件的Cordova。目的是从某些服务器加载一个临时窗口,由用户单击“ X”关闭

我简化了此问题的代码。服务器html看起来像这样:

<!DOCTYPE html>
<html>
  <head></head>
  <body onload="window.popupStatus='loaded';">
    <div onclick="window.popupStatus='closed';">X</div>
  </body>
</html>

应用程序中相关的JavaScript函数如下所示:

function popup(url) {
  var elapsed = 0;
  var loadstopFired = false;
  var win = cordova.InAppbrowser.open(url,"_blank","location=no");
  setTimeout(function() {if (!loadstopFired) win.close();},2500);
  win.addEventListener("loadstop",function() {
    loadstopFired = true;
    var loop = window.setInterval(function() {
      elapsed += 200;
      win.executeScript(
        {code: "window.popupStatus"},function(values) {
          if (values[0]=="closed")
            { win.close(); window.clearInterval(loop); }
          else if ((values[0]!="loaded") && (elapsed>2500))
            { win.close(); window.clearInterval(loop); }
        }
      );
    },200);
  });
}

问题是:仅从第二次开始,此行为才正确。第一次(仅)它会在用户有机会单击“ X”之前自行关闭

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。