Skip to content

Commit cadf4f4

Browse files
committed
Merge pull request #20 from zhangxinxu/develop
Develop
2 parents 64ce312 + 90ef4a4 commit cadf4f4

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

src/mobilebone.js

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -218,10 +218,10 @@
218218
pageInto.setAttribute("data-title", document.title);
219219
}
220220

221-
// delete page with same id
221+
// delete page with same id when options.remove !== false
222222
var pageid = options.id || pageInto.id;
223223

224-
if (store[pageid] && store[pageid] != pageInto) {
224+
if (options.remove !== false && store[pageid] && store[pageid] != pageInto && store[pageid].parentElement) {
225225
store[pageid].parentElement.removeChild(store[pageid]);
226226
delete store[pageid];
227227
}
@@ -849,17 +849,26 @@
849849
**/
850850
window.addEventListener("popstate", function() {
851851
var hash = location.hash.replace("#&", "").replace("#", "");
852-
if (hash == "" || isSimple.test(hash) == false) return;
853852

854-
var page_in = store[hash] || document.querySelector("#" + hash), page_out = document.querySelector(".in." + Mobilebone.classPage);
853+
var page_in = store[hash];
854+
855+
if (!page_in) {
856+
if(isSimple.test(hash) == false) {
857+
return;
858+
}
859+
page_in = document.querySelector("#" + hash)
860+
}
861+
862+
var page_out = document.querySelector(".in." + Mobilebone.classPage);
855863

856864
if ((page_in && page_in == page_out) || Mobilebone.pushStateEnabled == false) return;
857865

858866

859867
// hash ↔ id
860868
if (page_in) {
861869
Mobilebone.transition(page_in, page_out, Mobilebone.isBack(page_in, page_out), {
862-
history: false
870+
history: false,
871+
remove: false
863872
});
864873
}
865874
});

0 commit comments

Comments
 (0)