页面重新加载后保存/传递/ GET事件

时间:2017-07-06 10:24:06

标签: javascript cordova events addeventlistener window.open

我尝试使用custom-url-scheme打开cordova-app。

当我在触发事件后使用它时,我的工作原理如下:

<input id="myInput" onkeydown="checkKey(event);"/>

function checkKey(event) {
    if (event.which == 13 || event.keyCode == 13) {
        window.open('blablabla'); // call the App
    }
};

不幸的是,在我的情况下,按Enter键,后端系统必须检查该值,然后重新加载页面。

所以我试过这个:

document.addEventListener('DOMContentLoaded', function() {
   window.open('blablabla'); // call the App
}, false);

这里的问题是没有活动事件,因此chrome会生成一个导航。阻止无法打开应用程序。

有没有办法不通过重新加载页面来丢失事件?

2 个答案:

答案 0 :(得分:0)

为什么不:

  1. 阻止按Enter键的默认行为
  2. 通过ajax发送值
  3. 得到回复
  4. 打开应用
  5. 列表项
  6. 结论:

    1. 问题解决了
    2. 无需重页加载
    3. 更快的最终结果

答案 1 :(得分:0)

您可以使用DOMContentLoaded事件代替ondeviceready事件。这样,在初始页面(索引页面)onDeviceReady()上,您可以进行验证并在此之后调用应用程序的第一页。

在将用户引导到应用程序的主页之前,我们通常会对登录页面执行此操作。例如 -

document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {
    //get the value
    //check event through backend system
     window.open('blablabla');  //call the App's first page
}

引自[deviceready][1]文档 -

  

deviceready事件的行为与其他事件略有不同。 在deviceready事件触发后注册的任何事件处理程序都会立即调用其回调函数。