1

Cordova(phonegap)でアラートを繰り返すのに問題があります。javascriptは次のようになります。

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

戻るボタンを使用するなど、別のページに移動すると、アラートが再度表示されます。さらにナビゲートすると、アラートが2回繰り返されます。

注:さまざまなナビゲーション方法を試した場合でも発生します。例:

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

ページから移動すると、スクリプトは通常2回実行されます(アラートは単なる例です)(ただし、場合によっては)。これは、アラートに表示するエラーが原因で発生していると思われます。このエラーにより、スクリプトがなんらかの魔法のように再実行されます。何が原因である可能性があるかについてのアイデアはありますか?

ボーナス情報: シングルページモデル(1ページの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>
4

1 に答える 1

0

この問題は、コールバック メソッドが再度実行されることが原因でした。これは、コールバックがネストされている場合に特に問題になり、複雑なデバッグ シナリオが発生します。私が見つけた例は、jquery mobile popup (android) のバグでした。コールバックに changePage ナビゲーションを配置しました (ポップアップの終了時など)。コールバックは本来あるべきように changePage を呼び出しましたが、ポップアップが発生した場所にブラウザを戻すコールバックがあったようです。

于 2013-02-28T13:24:01.227 に答える