javascript - Cordova 警报在导航上重复

标签 javascript cordova navigation alert

我在 Cordova (phonegap) 中重复警报时遇到问题,javascript 如下所示:

navigator.notification.alert(
                'Something is amiss',  // message
                function(){},         // callback
                'DatabaseManager error processing SQL',            // title
                'Ok'                  // buttonName
            );

当我导航到另一个页面时,例如使用后退按钮,警报会再次显示。如果我进一步导航,警报会重复两次,依此类推。

注意:即使我尝试不同的导航方法,也会发生这种情况,例如:

$.mobile.changePage("LogOn.html");
window.location.href = "LogOn.html";
<a href="#" data-rel="back" data-icon="back">back</a>

我发现当我离开页面时(但仅在某些情况下),脚本通常会运行两次(警报只是一个示例)。我怀疑发生这种情况是因为我在警报中显示了一个错误,并且该错误导致脚本以某种神奇的方式再次运行。关于可能的原因有什么想法吗?

奖金信息: 我使用单页模型(一页 pr html 文件),加载 init 并从 html 运行我的脚本,如下所示:

<script src="../js/PickMode.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).bind("pageinit", function() {
            initPickMode(); //this method lives in PickMode.js
    });
</script>

最佳答案

此问题是由于回调方法再次运行而导致的,这在回调嵌套时尤其是一个问题 - 这会导致复杂的调试场景。我发现的一个例子是 jquery mobile 弹出窗口(在 Android 上)中的一个错误。我在回调中放置了一个changePage导航(在弹出窗口关闭或类似的情况下)。该回调按其应有的方式调用了changePage,但似乎有一个回调导致浏览器返回到弹出窗口发生的位置。

关于javascript - Cordova 警报在导航上重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14936909/

相关文章:

javascript - 使用 D3.js,如何检测何时到达动画线上的点?

javascript - 如何使用 phonegap + quickblox 注册/登录用户?

node.js - "Ionic start projectName"不适用于 Ionic Framework

css - 根据内部列表元素的数量调整 div 宽度

javascript - 无法使用 jquery 从 API 获取值

javascript - GAE 上的 NextJS - 错误 : EROFS: read-only file system

javascript - 如何在 Google Chart 中显示 PHP 数组

android - Windows cordova 构建错误 : Failed to find 'ANDROID_HOME' environment variable

css - 我的 CSS 导航菜单拒绝在浏览器中居中?

ios - 如何在导航栏的标题中包含图像?