Domanda

Questo è un problema abbastanza semplice ma non riesco a trovare una soluzione. Scrivo un po 'di XML in un div nascosto sulla pagina e l'ho letto più tardi. Il problema è che alcune virgolette vengono rimosse quando si scrive sul div e per questo motivo non riesco a caricare l'uso dell'xml in IE usando LoadXML

questo è l'XML

<parameters id='XXX'>
<product_id value='YYY'/>
<report_id value='ZZZ'/>
<list>
    <filter_id value='AAA'/>
</list>
<date_begin value='BBB'/>
<date_end value='CCC'/>
<timeframe_id value='DDD'/>
<chart_id value='EEE'/>

Ho usato molti metodi diversi ma nessuno sembra funzionare, sto cercando di utilizzare JQUERY il più possibile per prevenire problemi tra browser, ma qualsiasi soluzione lo farà.

Aggiungo l'xml, in una variabile stringa paramString, sopra usando

var parametersDiv = "<div id='" + reportDivId + "_params' style='visibility: hidden; display: none'>" + paramString + "</div>";

e va bene.

tuttavia quando provo a recuperarlo le virgolette attorno alla XXX vengono rimosse in IE. Quindi non riesco a caricarlo usando loadXML (). Potrei hackerare una soluzione ma mi piacerebbe farlo correttamente.

Qualsiasi soluzione sarebbe utile, ho già perso quasi un giorno su questo.

Grazie

JD

È stato utile?

Soluzione

Prova a usare virgolette doppie e vedi se funziona.

In caso contrario, un'altra soluzione al tuo problema potrebbe essere quella di ottenere l'XML tramite XMLHttpRequest (Ajax).

jQuery.ajax({
  url: 'yourUrlThatReturnsXML',
  dataType: 'xml',
  success: function (data, textStatus) {
   $(data); // Your XML
  }
});

Altri suggerimenti

Come stai inserendo questi div nascosti nella pagina? Presumibilmente stai usando innerHTML (dato che hai una stringa), ma questo significa che viene passato attraverso il parser HTML di IE. Questo lo trasformerà in HTML (non valido) e quando proverai a recuperarlo vedrai l'effetto che descrivi degli attributi non quotati (e probabilmente altri effetti collaterali che ti capita di non aver riscontrato ... ancora).

La soluzione migliore è salvare un riferimento al documento XML restituito (non una serializzazione delle stringhe) in una variabile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top