0

これについていくつかの議論を見てきましたが、それらはすべて、ユーザーが戻るためのボタンがページにあることを前提としています。WorklightでjQueryのロードとアンロードを使用して複数ページのフォームを作成しています。WLに精通している場合、これは複数ページのアプリサンプルに基づいています。基本的に、Webアプリが読み込まれると、pagePortを使用してコンテンツが表示されます。

function wlCommonInit(){

$("#pagePort").load("www/firstPage.html", function(){
    currentPage.init();
});
}

この時点で、ユーザーには続行ボタンのあるランディングページが表示されています。

<input type="button" value="Load Page1.html" id="LoadPage1Button" onclick="currentPage.loadPage(1);" />

ユーザーがボタンをクリックすると、pagePortコンテンツは、フォーム入力を開始する次のページに切り替えられます。

currentPage.init = function () {
  history.pushState({
    page: 2
  }, "Page2", "yourInformation");
};

currentPage.loadPage = function (pageIndex) {
  $("#pagePort").load("www/yourInformation" + ".html", function () {
    currentPage.init();
  });
};

この時点で、URLは../blah/firstPage.html#yourInformationに変更され、ユーザーは情報を入力してもう一度[続行]をクリックした後、フォームの次のページに進むことができます。この複数ページのフォームには、各ページに1つの続行ボタンしかなく、他に使用できるボタンがないことに注意してください...理由を聞かないでください...

したがって、戻る必要がある唯一のオプションは、history.pushStateを使用してブラウザーの履歴を操作しているだけなので、使用可能なブラウザーの戻るボタンです。ただし、ブラウザの[戻る]ボタンをクリックすると、URLのみが変更され、ページは変更されません。

だから私の質問は...私が作成しているURL履歴に戻るボタンをバインドする簡単な方法はありますか?pushStateを使用してURLを追加しますか?私がする必要があるのは、ユーザーが戻るボタンを押して最初のページに移動できるようにすることだけです。

ユーザーが続行をクリックした後にページyourInformation.htmlページをロードするfirstPage.htmlJSファイル:currentPage = {};

currentPage.init = function () {
  WL.Logger.debug("firstPage :: init");
  history.pushState({
    page: 0
  }, "firstPage");
  history.back(0);
};

currentPage.loadPage = function (pageIndex) {
  $("#pagePort").load("www/yourInformation" + ".html", function () {
    currentPage.init();
  });
};
currentPage.unload = function () {
  $('#pagePort').html('');
    for (var att in currentPage) {
    delete currentPage[att];
 }
};

ああ、プラグインはオプションではありません...

4

1 に答える 1

1

使用できますWL.App.overrideBackButton

WL.App.overrideBackButton(backFunc);
function backFunc(){
    // put your logic here.
}
于 2013-02-14T11:50:40.503 に答える