JQuery Сохранение содержимого HTML в истории не работает - PullRequest
1 голос
/ 29 октября 2019

Я работаю над сценарием jquery, чтобы сохранить содержимое в истории, чтобы я мог вернуться на предыдущую и следующую страницы. У меня проблема с моим кодом, потому что он не будет сохранять html-контент, так как он только сохранит URL-адрес и изменит URL-адрес.

Вот код:

$(function() {

    $(window).on('hashchange', function(e) {
        e.preventDefault();
        var hash = window.location.hash;
        var mailfolder = hash.split('/')[0].replace('#', '');
        var encryption = '';
        $(window).scrollTop(0);

        if (window.location.href.indexOf('/') > -1) {
        encryption = hash.split('/')[2];

        if (typeof encryption === 'undefined' | encryption === '')
        {
            encryption = hash.split('/')[1];
        }
    }


    if (mailfolder !== 'search')
    {
        if (window.location.href.indexOf('#inbox'+'/'+encryption) > -1) {
            $("#opt_selectall").hide();
            $("#opt_refresh").hide();
            $(".bottom_space").hide();
            $(".emailMessages").show();
            $(".emailBodyShowUp").show();
            $(".lg-side").css("overflow-y", "hidden");
            $(".emailMessages").scrollTop(0);
        }
     }
     else if (window.location.href.indexOf('#'+mailfolder) > -1) {
         if($('.tbody_maillist tr').length > 0) {
             $(".bottom_space").show();
             $(".emailMessages").hide();
             $(".emailBodyShowUp").hide();
             $("#opt_selectall").show();
             $("#opt_refresh").show();
             $("#next_prevButton").show();
             $('.tbody_maillist').show();
             mailbox_files = '';
         }
     }
 }



function inbox() {
var title = $(this).text();
var html = document.body.innerHTML;


stateData = {
    content: html,
    title: title,
    path: window.location.href,
    scrollTop: 0
};

if (window.location.href.indexOf('#inbox') > -1) {
    window.history.pushState(stateData, title, 'http://example.com/#inbox');
}


$(window).on('popstate', function(e) {
    if (e.state) {
        $("body").html(e.state.html);
        $("title").html(e.state.title);
    }
});

У меня естьпопробовал это:

var html = $('body').html();

Это все еще не позволяет мне сохранять html-содержимое в истории, так как оно будет пустым, когда я нажму кнопку назад в браузере. Я хочу сохранить содержимое HTML в истории, так как мне не нужно обновлять или перезагружать страницу, когда я нажимаю кнопку возврата в браузере.

Можете ли вы показать мне пример того, как я могу сохранитьСодержимое HTML в истории, чтобы я мог видеть его, когда нажимал на кнопку «Назад» в браузере?

Спасибо.

...