2009-07-30 105 views
1

這是一個相當簡單的問題,但我找不到解決方案。 我寫了一些XML到該頁面上的隱藏div,我稍後再閱讀。問題是,一些報價被刪除寫div時也正因爲如此使用的loadXML附加刪除引號

這是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'/> 

我無法加載使用XML在IE我已經使用了很多不同的方法,但似乎都沒有工作,我試圖儘可能使用JQUERY來防止跨瀏覽器問題,但任何解決方案都可以。

我追加XML,在一個字符串變量中的paramString,如上所述使用

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

和它進入細。

但是,當我嘗試檢索它時,XXX中的引號在IE中被刪除。因此我無法使用loadXML()加載它。我可以破解一個解決方案,但我想正確地做到這一點。

任何解決方案都會有所幫助,我已經浪費了將近一天的時間。

感謝

JD

回答

1

嘗試使用雙引號,看看是否能完成這項工作。

如果不是,您的問題的另一個解決方案可能是通過XMLHttpRequest(Ajax)獲取XML。

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

我不確定雙引號會做什麼,因爲它只是錯誤的第一個參數。 發生了什麼事情是我有一個大的XML請求通過ajax返回。我正在解析這個xml,並在頁面周圍的隱藏div中放置某個部分,以便下一次我想提出請求時,我可以背誦已保存的值。 – John 2009-07-30 10:48:38

+0

嘗試將XML保存爲變量中的對象。 var globalXML = $(data); – 2009-07-30 10:51:04

0

你如何將這些隱藏的div插入到頁面中?推測你使用的是innerHTML(假設你有一個字符串),但這意味着它正在通過IE的HTML解析器傳遞。這會將它變成(無效的)HTML,並且當您嘗試檢索它時,您會看到您描述的屬性沒有被引用的效果(以及您可能遇到過的其他副作用......)。

最好的辦法是在一個變量中保存對返回的XML文檔的引用(不是字符串序列化)。