jQuery 移动哈希链接在第一次点击链接后被缓存,直到 shift+f5



我有一个使用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前缀的所有后续链接。 例。。。

  1. 用户点击第二个链接#news?B,浏览器正确转到#news?B
  2. 用户单击后退按钮,被带回家
  3. 用户点击第一个链接#news?A,浏览器错误地转到#news?B(从步骤1缓存?

如果我再次 shift-f5,之后我单击的任何链接都会从该点开始成为"缓存"链接。 有什么想法吗? 我已经在我的手机上和带有用户代理切换器的 Chrome 中对此进行了测试(伪造我的浏览器以认为它是移动设备(。

编辑 - 我想我已经在这里找到了答案,http://jquerymobile.com/test/docs/pages/page-dynamic.html。将在更新此 s.o. 问题之前进行测试和验证。

尝试像这样使用它

<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 或 iPad 上比 chrome 的 UA 切换器更精确地对其进行测试。不过,Chrome 适用于 Android 测试。您必须转到首选项并启用开发人员菜单。在开发人员菜单中,您将可以选择切换用户代理。

好的,我发现了问题,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控制台中使用了此功能

相关内容

  • 没有找到相关文章

最新更新