Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Ajax Pushstate URL

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Ajax Pushstate URL

    Hiho Leutz

    fang ich direkt mal an ...
    also ich hab per htaccess dafür gesorgt das die URL schöner aussieht:
    Code:
    RewriteEngine On
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*) index.php?page=$1 [QSA]
    So ... nun wollte ich über Ajax auf ein anderes Modul (z.B. von Home auf Impress in diesem fall von localhost/home zu localhost/impress) ...
    nun das funktioniert auch soweit ... aber sobald ich localhost/home/1 verwende damit z.B. News der Seite 1 auf Home anzeige geht einiges schief ...
    darum hab ich jetzt Pfade auf absolute Pfad geändert (bin auch kein Fan von absoluten also ... ^^)
    sieht wieder normal aus aber leider ändert er jetzt von localhost/home/1 auf localhost/home/impress um wenn ich auf mein Impress gehen will ...
    muss ich vll mein js etwas weiter modifizieren damit es funktioniert?
    oder geht das nicht mehr mit PushState?
    Code:
    function clickHandler(e) {
    
    	var title = e.currentTarget.href.split('/'); //Hol Daten ein
    	var href = e.currentTarget.pathname;
    	var data = 
    	{
    		title: title.charAt(0).toUpperCase() + title.slice(1), //Erste Buchstaben groß
    		href: href, 
    		url: e.currentTarget.href
    	}
    
    	loadData(data); //Ajax ausführen
    
    	history.pushState(
    		data,
    		data.title,
    		href
    	);
    
    	e.preventDefault(); //zum Verhindern von Neuladen der Seite
    }


  • #2
    Ich werde das jetzt einfach mit "-" anstatt "/" lösen aka /home-1 anstatt /home/1 ...
    Dann hab ich auch die absoluten Pfade nicht und fertig ... falls einer noch nie Idee dazu hat wie man es sonst mit "/" lösen könnte kanns ja hier rein schreiben ^^

    Kommentar


    • #3
      PHP-Code:
      var title e.currentTarget.href.split('/'); //Hol Daten ein
      //...
      titletitle.charAt(0
      Das wirft dir einen TypeError a la "undefined is not a function", da title ein Array ist. Schau dir doch mal historyjs an, sollte das tun, was du hier erreichen willst: https://github.com/browserstate/history.js/
      I like cooking my family and my pets.
      Use commas. Don't be a psycho.
      Blog - CoverflowJS

      Kommentar

      Lädt...
      X