0

我有一个我正在开发的网站,当 js 可用时,它使用 ajax 加载页面段 - 这曾经在所有浏览器中都有效,唯一的问题是浏览器历史记录仅在 HTML5 浏览器中更新。

我最近在该网站上做了很多工作,最近决定尝试为 html4 浏览器整理历史记录,这样做我在 IE 中检查了该网站,发现数据来自的方式出现了问题正在显示一些 ajax 调用(仅影响 IE - 不影响 FF)。

URL 的结构如下:

站点名称.dev/main_category/sub_category

如果我只是输入sitename.dev/main_category一切正常,但是如果我单击其中一个子类别的链接,sitename.dev/main_category/sub_category结果已加载但未在 IE 中正确显示。如果我在浏览器中输入地址进行硬重新加载,一切正常

工作(通过硬重新加载): 工作(通过硬重新加载):

不通过ajax工作:

不通过ajax工作:

因为它是 ajax 加载的内容,所以我无法检查 dom,但我的函数似乎正在正确触发,并且 ajax 调用正在返回正确的结果。

这是我的ajax调用的代码

function leftsort_click(event) { //main sort click (left menu)
    var page = window.name, page_index,
    api = $('#right_pane').jScrollPane({
    showArrows: true,
    maintainPosition: false
    }).data('jsp');

    if (!$(this).hasClass('sort_cat')) {

    $('ul.sort_ul li, ul.cat_items li').removeClass('active');
    $(this).addClass('active');
    var sid = $(this).attr('id');
    var title = $(this).html();
    var loadUrlx= page;
    if ((sid != '') && (sid != 'undefined')) {
        loadUrlx += '/'+sid;
    }
    if($('.rpp_btn.active').length>=1){
        var res_per_page = $.trim($('.rpp_btn.active').html());
        page_index = $.trim($('.res_page_select.active a').html());
        if (($('.rpp_btn.active').hasClass('just_clicked'))||(!$('.res_page_select').hasClass('just_clicked'))) {
        page_index = '1';
        }
        if ((page_index != 1) || (res_per_page != 25)) {
        loadUrlx += '/' + page_index + '/' + res_per_page;
        }
        $('.rpp_btn, .res_page_select').removeClass('just_clicked');
    }

    loadUrlx = b_url + loadUrlx;
    if (History.enabled) {
        History.pushState(null, null, loadUrlx);

    }

    $.ajaxSetup({
        cache: false
    });

    $("#result_area").load(loadUrlx, function() {
        $("#result_table").trigger("update");
        api.reinitialise();
        tsizer();
    });
    }
}

任何帮助或建议将不胜感激

4

1 回答 1

0

解决了这个问题,我正在将一个 div 注入一个 tbody - 我对此并不满意。

于 2012-12-14T14:50:32.333 回答