-3

Android の [戻る] ボタン ( PhoneGap2.2.0)に次のイベントを作成しました。

document.addEventListener("backbutton", function (e) {
    //Do Something
}, false);

アプリケーションから外部サイトに移動する次のリンクがあります

マイリンク

私は戻るボタンイベントをオーバーライドし、アプリ内を別のリンクに渡すとすぐにイベントはキャンセルされません..そして別のリンクはコルドバを知らないので、彼はこのイベントにアクセスすることさえできません。

だから完全にキャンセルしなきゃ!

どうしよう…?

戻るボタンを押すと、ログに次のエラー メッセージが表示されます。

Uncaught ReferenceError: cordova is not defined at :1

そして何も起こらない..

4

2 に答える 2

2
function onBackKey() {
    console.log("I've caught a back key");

    // We are going back to home so remove the event listener
    // so the default back key behaviour will take over
    document.removeEventListener("backbutton", onBackKey, false);

    // Hide the current dive and show home
    document.getElementById(cur).style.display = 'none';
    document.getElementById('home').style.display = 'block';    
    cur = 'home';
}

function goToDiv(id) {
    // We are moving to a new div so over ride the back button
    // so when a users presses back it will show the home div
    document.addEventListener("backbutton", onBackKey, false);

    // Hide home and show the new div
    document.getElementById('home').style.display = 'none';
    document.getElementById(id).style.display = 'block';
    cur = id;
}

HTMLタグを配置する

 <div id="home">Back Button Home<br/><a href="javascript:goToDiv('div1')">Div One</a><br/><a href="javascript:goToDiv('div2')">Div Two</a></div>

詳細な回答については、以下のリンクをご覧ください

https://gist.github.com/955496

于 2013-01-17T10:12:14.573 に答える
1

あなたはそれを達成することができます

boolean toRun = true;

document.addEventListener("backbutton", function (e) {
    if (toRun)    
    {
        //Do Something
        toRun = false;
    }
});

必要に応じてブール値を設定します。初めての場合は、実行コードを確認してください。そうでなければ何もしません。

それが役に立てば幸い。

于 2013-01-17T09:33:05.693 に答える