Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπερα

 

Σε συνεχεια προηγουμενου post που ρωταγα για url query strings κτλ, επεσα πανω στο history api της html5 και αποφασισα να το τεσταρω.

 

Εχω ενα απλο κώδικα, μερικα κουμπια

<button name="hey1" onClick="historytestone();">history test one</button>
<button name="hey2" onClick="historytesttwo();">history test two</button>
<button name="hey3" onClick="historytestthree();">history test three</button>
<button name="hey4" onClick="historytestfour();">history test four</button>
<button name="hey5" onClick="historytestfive();">history test five</button>

και μετα η javascript

function historytestone(){
    history.pushState({page: "ross"}, "ross","ross.html");
}

function historytesttwo(){
    history.pushState({page: "monica"}, "monica","monica.html");
}

function historytestthree(){
    history.pushState({page: "chandler"}, "chandler","chandler.html");
}

function historytestfour(){
    history.pushState({page: "joy"}, "joy","joy.html");
}

function historytestfive(){
    history.pushState({page: "rachel"}, "rachel","rachel.html?a=1&b=2");
}

// δεν δουλευει    
window.addEventListener("popstate", function(event) {
    alert("hello");
});

//επισης δεν δουλευει
window.onpopstate=function(event){
  alert("hello");
}

Προσπαθώ να "ακούσω" για το popstate event στην ιδια σελιδα, αλλα δεν βλεπω αλερτ ουτε λαθη στη κονσολα του broweser. Οποια κ απο τις 2 συνταξεις κωδικα να βαλω, δεν εχω αποτελεσμα. 

 

Γιατι ρε παιδια, τι γινετε? Σορρυ, αλλα δε μπορω να βρω τι φταιει

 

Ευχαριστω

 

 

Δημοσ.

@geomagas

 

Το alert απο το popstate event σκαει μονο οταν κανω κλικ στα κουμπια (αλλαξει το url κανονικα) και μετα κλικαρω το back Και front του browser. 

 

Το προβλημα μου ειναι το εξης. Ο κωδικας μου ειναι βασισμενος σε αυτο το Link.png Site: demo και ουσιαστικα ειναι μια πιο απλοποιημενη μορφη του.Γιατι ο τυπας στο demo ακουει ανετα popstate event (και μεσω αυτου αλλαζει περιεχομενο στα div) και γω δε μπορω ουτε ενα alert να κανω μεσω Popstate?

 

Ευχαριστω και παλι

Δημοσ.

Όχι, με τον ίδιο ακριβώς τρόπο δουλεύει και το demo που βλέπεις. Και εκεί, όπως και στον κώδικά σου, το popstate γίνεται trigger μόνο όταν πατάς τα back/front (δηλαδή όταν περιηγείσαι στο history). Αυτός όμως αλλάζει το περιεχόμενο αφ' ενός στο popstate και αφ' ετέρου στο click των links, ενώ εσύ βγάζεις alert μόνο στο popstate.

 

Hint: Δες από ποια σημεία καλεί την updateContent() και συγχρόνως παρακολούθησε την κονσόλα σου για το πότε βγαίνει το μήνυμα "popstate fired!".

  • Like 1
Δημοσ.

Το pushState δεν κάνει trigger the popstate event. Μόνο το history.back() ή το  history.go(-x) ή το back button που πάτησες.

 

εντιτ με πρόλαβε...

  • Like 1
Δημοσ.

Α ναι ρε φιλε, καλει το updateContent 2 φορες, μια στο popstate και μια στο clickHandler των links. Εγω νομιζα οτι το να αλλαζει περιεχομενο γινετε αυτοματα απο το popstate, δεν ειχα παρατηρησει το clickHandler.

 

Thanks

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...