这是一个相当简单的问题,但我找不到解决方案。 我在页面上给一个隐藏的div写了一些xml,后来我再读了。问题是在写入div时会删除一些引号,因此我无法在IE中使用LoadXML加载使用xml
这是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'/>
我已经使用了很多不同的方法,但似乎都没有用,我试图尽可能地使用JQUERY来防止跨浏览器问题,但任何解决方案都可以。
我使用
将xml附加到字符串变量paramString中var parametersDiv = "<div id='" + reportDivId + "_params' style='visibility: hidden; display: none'>" + paramString + "</div>";
它很好。
然而,当我尝试检索它时,在IE中删除XXX周围的引号。因此我无法使用loadXML()加载它。我可以破解解决方案,但我想正确地做到这一点。
任何解决方案都会有所帮助,我已经浪费了将近一天的时间。
由于
JD
答案 0 :(得分:1)
尝试使用双引号,看看是否能完成这项任务。
如果没有,问题的另一个解决方案可能是通过XMLHttpRequest(Ajax)获取XML。
jQuery.ajax({
url: 'yourUrlThatReturnsXML',
dataType: 'xml',
success: function (data, textStatus) {
$(data); // Your XML
}
});
答案 1 :(得分:0)
如何将这些隐藏的div插入页面?大概你正在使用innerHTML(假设你有一个字符串),但这意味着它正在通过IE的HTML解析器传递。这将把它变成(无效)HTML,当你试图检索它时,你会看到你描述的属性被引用的效果(可能是你没有遇到的其他副作用......)。
最好的办法是在变量中保存对返回的XML文档(不是字符串序列化)的引用。