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

Zmiana url ajax

VPS Starter Arubacloud
0 głosów
473 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 (287,550 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 (599,730 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ź 162 wizyt
pytanie zadane 2 lipca 2020 w JavaScript przez Bartek12 Mądrala (5,510 p.)
0 głosów
2 odpowiedzi 216 wizyt
pytanie zadane 22 lipca 2017 w JavaScript przez kingkushlee Gaduła (3,960 p.)
0 głosów
1 odpowiedź 247 wizyt
pytanie zadane 12 maja 2016 w JavaScript przez Michał_Warmuz Mądrala (5,830 p.)

92,451 zapytań

141,261 odpowiedzi

319,073 komentarzy

61,853 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.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...