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



我尝试使用自定义网址方案打开一个cordova应用程序。

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

<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 会进行导航。block 应用程序无法打开。

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

为什么不:

  1. 防止按回车键时的默认行为
  2. 通过 AJAX 发送值
  3. 获取响应
  4. 打开应用程序
  5. 列表项

结论:

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

您可以使用ondeviceready事件代替DOMContentLoaded事件。在这种情况下,在初始页面(索引页)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 事件触发后注册的任何事件处理程序都会立即调用其回调函数。

相关内容

  • 没有找到相关文章

最新更新