Использование родного HistoryAPI и History.js вместе

Я немного запутался новичок в истории API. Пожалуйста, помогите мне понять это. Я написал этот код с помощью Native HistoryAPI:

function addClicker(link) {
    link.removeEventListener('click', null);
    link.addEventListener("click", function (e) {
        if (swapData(link.href)) {
            if (prevlink != link.href) {
                history.pushState(null, null, link.href);
                prevlink = link.href;
            }
            e.preventDefault();
        }
    }, true);
}

function setupHistoryClicks() {
    var links = document.getElementsByClassName('hrlinks');
    for (var i = 0; i < links.length; i++)
        addClicker(links[i]);
}

function initHist() {
    if (!supports_history_api()) { return; }
    setupHistoryClicks();
    window.setTimeout(function () {
        window.addEventListener("popstate", function (e) {
            swapData(location.href); //a function that changes content according to URL
        }, false);
    }, 1);
    swapData(location.href);
}

Этот код переопределяет событие щелчка ссылок с hrlinks как класс и позволяют им использовать историю API.

Но за последние 2 дня я изучаю History API и узнал, что он не очень надежный. И другой альтернативой является использование History.js.

Я хочу знать, как я могу использовать History.js, когда History API недоступен? И мне нужно изменить свой код для этого? Или я должен просто импортировать History.js, когда родной History API не поддерживается?

0 ответов

Другие вопросы по тегам