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

function nextPage(currentPage, totalPageCount) {
            alert(currentPage+ " Begin nextPage Method " + totalPageCount);
            var nextPage = currentPage+1;
            var ctx = "${context}";
            var url = ctx+"/adtrack/storelist/National/1/"+nextPage;
            console.log(url);
            if(nextPage  <= totalPageCount)
                {
                jQuery.ajax({
                   url: url,
                   type: "GET",
                   success: function(msg) {
                    alert("Success");
                   },
                   error : function(msg) {
                     alert("Fail");
                   }
                  });
                }
            else{
                alert("Unable to perform the action!!!");
            }
            // return true or false, depending on whether you want to allow the `href` property to follow through or not
        }

В приведенном выше вызове происходит переход по URL-адресу и возвращаются значения, но мне также необходимо изменить текущий URL-адрес на последний URL-адрес. Как я могу обновить URL?

Какой бы URL я ни нажимал, этот URL должен быть обновлен как текущий URL браузера

1
Vinod 17 Дек 2015 в 14:46

3 ответа

Лучший ответ

Вероятно, вам следует использовать History API, он позволяет вести историю браузера.

function nextPage(currentPage, totalPageCount) {
            alert(currentPage+ " Begin nextPage Method " + totalPageCount);
            var nextPage = currentPage+1;
            var ctx = "${context}";
            var url = ctx+"/adtrack/storelist/National/1/"+nextPage;
            console.log(url);
            if(nextPage  <= totalPageCount)
                {
                jQuery.ajax({
                   url: url,
                   type: "GET",
                   success: function(msg) {
                    alert("Success");
                    /* History API goes below, replace /testurl with the string you want */
                    window.history.pushState(null, null, '/testurl');
                   },
                   error : function(msg) {
                     alert("Fail");
                   }
                  });
                }
            else{
                alert("Unable to perform the action!!!");
            }
            // return true or false, depending on whether you want to allow the `href` property to follow through or not
        }

Просто имейте в виду, что некоторые старые браузеры могут не поддерживать его

http://caniuse.com/#feat=history

Подробнее об истории API здесь

https://css-tricks.com/using-the-html5-history-api/

https://developer.mozilla.org/en-US/docs/Web/API/History_API

1
Alexander Dyachkov 17 Дек 2015 в 12:01

Следующий код защитит страницу от обновления и просто изменит URL.

 history.pushState({id: '<SOME-ID>'}, '', 'newUrl');

Для получения дополнительной информации см. https://rosspenman.com/pushstate-jquery/.

1
Thanga 17 Дек 2015 в 12:02

Привет, я предлагаю попытаться объявить переменную nextPage как глобальную переменную, потому что всякий раз, когда вы нажимаете эту функцию, этому значению будет присваиваться новое значение.

     var nextPage=0;

function nextPage(currentPage, totalPageCount) {
      /......../

      nextPage= currentPage+1;

     /......../

}

2
takeoffjava 17 Дек 2015 в 12:07