2013-01-17 225 views
-3

我創建了以下事件,Android的後退按鈕(PhoneGap 2.2.0):破壞後退按鈕事件 - 安卓

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

我有以下鏈接,帶我到一個外部網站從應用

我的鏈接

我重寫後退按鈕事件,只要我通過內部應用程序到另一條鏈路事件沒有被取消..而且因爲另一個鏈接不知道他科爾多瓦甚至無法訪問此事件。

所以我必須完全取消它!

我該怎麼做......?

當我按下後退按鈕我得到的日誌中出現以下錯誤信息:

Uncaught ReferenceError: cordova is not defined at :1 

,並沒有任何反應..

+1

什麼是你想要做什麼呢? –

+0

我想讓我的活動在某個功能運行後不再工作 –

+0

如果您投下意味着是次等問題,是不是?那麼爲什麼沒有人回答它呢? –

回答

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

+0

謝謝謝謝謝謝,終於回答了我的問題!這是我需要的行:document.removeEventListener(「backbutton」,onBackKey,false); –

1

可以實現它作爲

boolean toRun = true; 

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

設置布爾根據您的需要。並檢查,如果它的第一次,執行代碼。否則什麼也不做。

希望它有幫助。

+0

我想完全取消該活動,這是不可能的? –

+0

@HodayaShalom,你的意思是「完全取消事件」?如果你想在特定的函數調用後取消它,你可以在該函數的最後一行中將其設置爲false –

+0

我的意思是銷燬這個事件。就好像他以前不存在一樣。我希望Button返回到其正常操作 –