2013-09-06 8 views
5

Im uso di History.js per inviare un URL ma in IE aggiunge il nome della pagina.History.js PushState nel browser html 4 (IE) modifica l'url in modo errato

se il mio url originale è: http://www.mydomain.com/Home.aspx

e poi eseguire il seguente:

var url = window.location.protocol + '//' + window.location.host + '/ Casa .aspx? id = 2 & pl = 4 '; History.pushState (null, null, url)

In Chrome mio URL diventa: http://www.mydomain.com/Home.aspx?id=2&pl=4

In IE 8 mio URL diventa: http://www.mydomain.com/Home.aspx#Home.aspx?id=2&pl=4

Se io incollare l'URL di IE 8 in cromo mio codice fallisce ...

In primo luogo, quale dovrebbe essere l'URL html 4 corretto e in secondo luogo, come posso risolverlo?

+0

Il tuo problema è che tutto ciò che segue # non viene inviato al server. Quindi mydomain.com/Home.aspx non otterrà mai l'id e il pl che sono dopo l'hash. – patrick

+0

Quello che ottieni è inteso, sto usando nel nostro sito client e si comporta allo stesso modo che hai dato e funziona bene. Anche l'URL con Hash funzionerà correttamente nei browser Chrome. –

risposta

0

Credo che non si stia spingendo correttamente uno stato, provare a riformattare l'url che si preme, ad es. History.pushState({data: 'home'}, null, '/Home/').

O forse hai pensato che il push di uno stato invia anche una richiesta al server come hai fatto con una query? Non amico.

Pertanto, non aspettarsi che qualcosa funzioni incollando lo stato inserito in altri browser. Primo, perché altri browser non hanno una cronologia del tuo sito e in secondo luogo devi prendere l'evento statechange con History.

ad es.

History.Adapter.bind(window, 'statechange', 
     function() { 
     if (History.getState().data.page === 'home') { 
      //do what u would like with current state 
     } 
    ); 
+0

L'evento statechange non è il problema. Tutto funziona. Se spingo "/ Home /" e poi aggiungi questa pagina ai segnalibri e poi ricarico la pagina, non funzionerebbe come asp.net si aspetta ".aspx" alla fine di casa ... Sto eseguendo questo su un sito di Sharepoint. –

Problemi correlati