• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zmiana url ajax

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
0 głosów
588 wizyt
pytanie zadane 11 stycznia 2016 w JavaScript przez jaca121212 Nałogowiec (40,760 p.)

Jak zrobić aby zmienił się adres url po wczytaniu strony za pomocą ajax load  

Na stronie http://darmoweogloszenia.ugu.pl/projekt/ jest właśnie zastosowanie ajax+load tylko url się nie zmienia.

1 odpowiedź

+3 głosów
odpowiedź 11 stycznia 2016 przez Arkadiusz Waluk Ekspert (290,250 p.)
Szczegółów nie znam bo sam finalnie z tego nie skorzystałem ale zobacz

https://forum.pasja-informatyki.pl/21540/zmiana-adresu-strony-bez-przeladowania?show=21544#a21544

Czy jest jeszcze jakaś inna opcja to szczerze nie wiem, poczekaj na Comandeera może coś dopowie ;p
komentarz 11 stycznia 2016 przez Comandeer Guru (607,060 p.)
To jedyny sensowny sposób ;)
komentarz 11 stycznia 2016 przez jaca121212 Nałogowiec (40,760 p.)
edycja 12 stycznia 2016 przez jaca121212

Czytalem o tym na tej stronie https://css-tricks.com/using-the-html5-history-api/ Ale nie wiem jak to zastosowac do swojej strony

 

Zrobiłem to w ten sposób zmiana url działa tylko jak dam w przeglądarce przycisk wstecz to zmieni się url ale strona nie  gdzie robię źle tak wygląda kod 

<script>
 $(document).ready(function(){
                $("#header").html("wczytywanie....").load("main.php");
                 return false;
  });
  $(function(){
    
         $("a").click(function(){
             $("#header").html("wczytywanie....").load($(this).attr('href'));
                 return false;
        })


  	
         $("nav a").click(function(event){
             $("#header").html("wczytywanie....").load($(this).attr('href'));
             event.preventDefault();  
             if(history.pushState) {
                history.pushState(null, null, $(this).attr('href'));
              } return false;
        })
        
    })

$("a").click(function(){

  // Prevent default click action
  event.preventDefault();     

  // Detect if pushState is available
  if(history.pushState) {
    history.pushState(null, null, $(this).attr('href'));
  }
  return false;
});


</script>

podgląd na stronie 

http://www.darmoweogloszenia.ugu.pl/

komentarz 12 stycznia 2016 przez Czort Nałogowiec (32,500 p.)
Nie lepiej użyć gotowego, zoptymalizowanego rozwiązania?

https://github.com/defunkt/jquery-pjax
komentarz 13 stycznia 2016 przez jaca121212 Nałogowiec (40,760 p.)
edycja 13 stycznia 2016 przez jaca121212

Nie za bardzo wiem jak tego użyć dołączyłem script  i zrobiłem to tak 

$(document).pjax('nav a', '#header');

lub tak 

$(document).pjax('a', '#header');

Strona się nie wczytywała do id="header"


Znalazłem script  http://stackoverflow.com/questions/14215079/ajax-with-history-pushstate-and-popstate-what-do-i-do-when-popstate-state-prop

$(document).ready(function(){

    // Used to detect initial (useless) popstate.
    // If history.state exists, pushState() has created the current entry so we can
    // assume browser isn't going to fire initial popstate
    var popped = ('state' in window.history && window.history.state !== null), initialURL = location.href;

    var content = $('#header');

    var ajaxLoadPage = function (url) {

        console.log('Loading ' + url + ' fragment');
        content.load(url + '?fragment=true');

    }

    // Handle click event of all links with href not starting with http, https or #
    $('a').not('[href^=http], [href^=https], [href^=#]').on('click', function(e){

        e.preventDefault();
        var href = $(this).attr('href');
        ajaxLoadPage(href);
        history.pushState({page:href}, null, href);

    });

    $(window).bind('popstate', function(event){

        // Ignore inital popstate that some browsers fire on page load
        var initialPop = !popped && location.href == initialURL;
        popped = true;
        if (initialPop) return;

        console.log('Popstate');

        // By the time popstate has fired, location.pathname has been changed
        ajaxLoadPage(location.pathname);

    });

});

po podpięciu pod stronkę działa ok. Już nie chce  zakładać nowego  tematu to napiszę tutaj. W jaki sposób zrobić, jeśli ktoś wejdzie na stronę np. tak:

 http://www.darmoweogloszenia.ugu.pl/main.php

to nie wczyta się główny index gdzie w nim jest dołączony styl i skrypt. 

Podobne pytania

0 głosów
1 odpowiedź 213 wizyt
pytanie zadane 2 lipca 2020 w JavaScript przez Bartek12 Mądrala (5,510 p.)
0 głosów
2 odpowiedzi 368 wizyt
pytanie zadane 22 lipca 2017 w JavaScript przez kingkushlee Gaduła (3,960 p.)
0 głosów
1 odpowiedź 294 wizyt
pytanie zadane 12 maja 2016 w JavaScript przez Michał_Warmuz Mądrala (5,830 p.)

93,434 zapytań

142,429 odpowiedzi

322,661 komentarzy

62,797 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

...