当从第1页转到第2页时,试图手动设置页面上的数据url属性时,会产生一种奇怪的效果。
我想将页面数据url属性设置为url路径名,如下所示:
page.attr({ 'data-url' : $.mobile.path.parseUrl( window.location.href ).pathname });
现在我在睡前在页面上做这件事。问题是,如果我不等待至少400毫秒,数据url将始终设置为前一个页面url。所以我这么做,我觉得这真的很糟糕。。。
window.setTimeout(function () {
page.attr({
'data-url': $.mobile.path.parseUrl(window.location.href).pathname
});
}, 400)
问题:
这可能是因为我在放映前听了pageshow还是pageshow?我如何在没有超时的情况下确保被拉入DOM的新页面不会获得以前访问过的页面的路径名(这会导致导航混乱…
问题是pushstate隐藏了实际发生的事情。
如果您在Jquery Mobile中从www.site.com/folder/page1.html转到page2.html 将掩模推入 但如果使用parseURl.pathname,路径仍然是 因此,将数据url设置为路径名将始终将其设置为 因为那是…路径名。Pushstate只是没有显示它。我现在正在做这件事,它在没有超时的情况下工作得很好: www.site.com/folder/page1.html/#/folder/page2.html
www.site.com/folder/page2.html
www.site.com/folder/page1.html
www.site.com/folder/page1.html
setPage = $.mobile.path.parseUrl( window.location.href );
setPageUrl = setPage.hash == "" ? setPage.pathname : setPage.hash.replace('#','');
page.attr({ 'data-url' : setPageUrl });