これについていくつかの議論を見てきましたが、それらはすべて、ユーザーが戻るためのボタンがページにあることを前提としています。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];
}
};
ああ、プラグインはオプションではありません...