21

jQueryMobile1.1.1とApacheCordova2.0.0を使用しています。現在のページのID=feedZiveの場合に限り、戻るボタンを押したときにアプリを終了したい。私はそれを行うために次のコードを使用しています:

function onDeviceReady(){
    document.addEventListener("backbutton", onBackKeyDown, false);
    function onBackKeyDown(){
        if ($.mobile.activePage.is("#feedZive")){
            navigator.app.exitApp();
        }
        else{
            navigator.app.backHistory();
        }

    }
};

ただし、次のコードを試したため、現在のページを取得できないようです。

var activePage = $.mobile.activePage;
alert(activePage);

アラートが未定義と表示されています。私もに変更しようとし$.mobile.activePageまし$.mobile.activePage.attr("id")たが、うまくいきませんでした。

4

8 に答える 8

46
$(document).live('pagebeforeshow', function() {
    alert($.mobile.activePage.attr('id'));
});​

http://jsfiddle.net/ajD6w/5/

于 2012-09-24T11:25:58.263 に答える
18

使ってみてください

var activePage = $.mobile.activePage.attr("id");

私はあなたのために働くjsfiddleを作りました http://jsfiddle.net/Z5Uze/1/

于 2012-09-17T20:39:44.343 に答える
11

これは古いスレッドだと思いますので、おそらく最近追加されたものです。

やってみました:

var activePage = $.mobile.pageContainer.pagecontainer("getActivePage");
if(activepage[0].id == yourpageid)
{ /*do something here*/ }

または別の方法:

var activePage = $.mobile.activePage.attr('id')
if(activepage == yourpageid)
{ /*do something here*/ }
于 2014-04-23T18:03:07.753 に答える
6

これを試してください、それは私のために働いています:

var activePage = $.mobile.activePage[0].id;

アラートが機能しているフィドルは次のとおりです。http://jsfiddle.net/9XThY/3/

于 2012-09-17T14:58:14.623 に答える
3
$(document).ready(function() {

//exit when back button pressed on home screen
document.addEventListener("deviceready", function() {
    document.addEventListener("backbutton", function() {
        if ($.mobile.activePage.attr('id') == "home") {
            navigator.app.exitApp();
        } else {
            navigator.app.backHistory();
        }
    }, false);
}, false);

});

于 2013-04-23T17:51:20.697 に答える
2

私たちはこれを行っています:

$(document).on("pagecontainershow", function() {
    var activePage = $.mobile.pageContainer.pagecontainer("getActivePage");

    var activePageId = activePage[0].id;

    if(activePageId != 'splashPage') { //fix rotation splash flash bug
        $("#splashPage").hide();
    } else {
        $("#splashPage").show();
    }

    switch(activePageId) {
        case 'loginPage':
            loginPageShow();
            break;
        case 'notificationPage':
            notificationPageShow();
            break;
        case 'postPage':
            postPageShow();
            break;
        case 'profilePage':
            profilePageShow();
            break;
        case 'splashPage':
            splashPageShow();
            break;
        case 'timelinePage':
            timelinePageShow();
            break;
        default:
            break;
    }
});

そして、ナビゲーションは次のように機能します。

    $.mobile.loading('hide');
    $(":mobile-pagecontainer").pagecontainer("change", "#timelinePage", {
        transition: 'none'
    });
于 2015-06-18T14:25:49.407 に答える
0

Jquerymobile1.4.3フレンドリー...

$(document).on('pagebeforeshow', function () {
    var URL = $.mobile.path.parseUrl(window.location).toString().toLowerCase();

    alert(URL);
});
于 2014-08-26T20:01:00.787 に答える
-2

このソリューションはどちらも優れていますが、document.ready(function()内に配置する必要がありました。

$(document).ready(function(){
var activePage = $.mobile.activePage[0].id;
alert(activePage);
});
于 2012-09-18T10:50:14.133 に答える