我有一个使用jQuery Mobile库的网站,有几个链接如下所示:
<a href="#news?A">News for A zipcode</a>
<a href="#news?B">News for B</a>
<a href="#news?C">News for C</a>
首先点击的链接似乎被浏览器缓存为具有相同#news
前缀的所有后续链接。实施例...
#news?B
的第二个链接,浏览器正确转到#news?B
#news?A
的第一个链接,浏览器不正确地转到#news?B
(从第1步缓存?)如果我再次转换-f5,那么我点击之后的任何链接都将成为从该点开始的“缓存”链接。有任何想法吗?我已经在手机上和使用用户代理切换台的Chrome中测试了这一点(假设我的浏览器认为它是移动设备)。
修改 - 我想我在这里找到了答案http://jquerymobile.com/test/docs/pages/page-dynamic.html。将在更新此s.o之前进行测试和验证。问题
答案 0 :(得分:0)
尝试像这样使用它
<a href="#news_A">News for A zipcode</a>
<a href="#news_B">News for B</a>
<a href="#news_C">News for C</a>
如果您在其他地方访问代码,也可以更改代码以使用_
代替?
此外,您可以使用safari比iPhone的UA切换台更精确地测试iPhone或iPad。 Chrome适用于Android测试。 您必须转到首选项并启用开发人员菜单。在开发人员菜单中,您可以选择切换用户代理。
答案 1 :(得分:0)
好的我发现了问题,hash.location没有更新到点击/点击的链接(剧院)。
我使用data-url属性来提取正确的信息:
示例:
$(document).on('pagechange', function (e, o) {
var dataURL = $('#theater').attr('data-url'); // Use this for the Theater Location as hash is not updating
var hash = location.hash;
var action = hash.split('?')[0]; // #whatshot, #showtimes, #zip?{zip}, #theater?{zip},{theaterId}
var args = dataURL.split('?')[1].split(',');
var zip = args[0];
var theaterId = args[1];
// load theater movies
codejkjk.movies.Api.GetTheaterMovies(codejkjk.movies.Mobile.Currents.ShowtimeDay(), codejkjk.movies.Mobile.Currents.ZipCode(), theaterId, function (theater) {
codejkjk.movies.Mobile.Controls.CurrentTheater().html(theater.name);
codejkjk.movies.Mobile.Controls.TheaterMovieList().html(
codejkjk.movies.Mobile.Controls.TheaterMovieTemplate().render(theater)
).show().listview('refresh'); //.trigger('create');
// set theaterMovieBackUrl
theaterMovieBackUrl = hash; // set back url to current url
$.mobile.hidePageLoadingMsg();
});
});
我在Chrome控制台中使用了此功能