5

io uso questi codici per l'aggiornamento di una parte della mia pagina:innerHTML non funziona in IE11 e IE8

var container = document.getElementById("mainForm:table_1"); 
var content = container.innerHTML; 
container.innerHTML= content; 

container.innerHTML ha funzionato bene in Firefox e Chrome ma non funziona in IE8 e IE11

ho letto questi collegamenti: .InnerHTML Not working properly in Internet Explorer e document.getElementById().innerHTML fails with 'Unknown Error' in IE

ma il mio problema è che non posso cambiare l'altra parte del mio codice eas a causa della generazione dinamica.

1) C'è un modo che posso fare solo con questa parte del mio codice per risolvere il problema di IE?

2) e anche io bisogno di un'alternativa a:

window.history.pushState() 

che non funziona in IE8 e IE9

+0

Andare a indovinare che 'mainForm: table_1' è un elemento'

'? Se è così, prova a selezionare un elemento genitore della tabella e sostituisci l'intera tabella. –

+0

sì hai ragione, è un tavolo. Cerco di farlo e della seconda parte della mia domanda? come posso aggiungere una stringa all'URL con qualcosa come lo stato di pushstate che funziona con ie8 e ie9 anche tu? grazie per la tua risposta – OmiD

risposta

2

per la prima parte della sua domanda fare questo:

var container = document.getElementById("mainForm:table_1").parentNode; 
    var content = container.innerHTML 
    container.innerHTML= content; 

e per la seconda parte della tua domanda, come @JITHIN PV detto è necessario utilizzare history.js

Si può facilmente utilizzare in questo modo:

var History = window.History; 
History.enabled ; 
History.pushState("object or string", "object or string", "object or string"); 
6

IE9 e sotto non supporta pushState. Per unsupported browsers utilizzare history API. e anche trovare un altro elenco di polyfills here.

+0

sì hai ragione non funziona, ma non è un modo per farlo con javascript o jquery nativi? senza l'utilizzo dell'API cronologia – OmiD

+0

@OmiD Si potrebbe semplicemente smettere di supportare browser obsoleti/obsoleti. È ora di smettere di assecondare le persone che si rifiutano di aggiornarle, soprattutto perché fare ciò richiede praticamente manualmente e deliberatamente (e quindi, malintenzionatamente) disabilitare Windows Update. –