这是一个相当简单的问题,但我找不到解决方案。 我在页面上给一个隐藏的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

有帮助吗?

解决方案

尝试使用双引号,看看是否能完成这项任务。

如果没有,问题的另一个解决方案可能是通过XMLHttpRequest(Ajax)获取XML。

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

其他提示

如何将这些隐藏的div插入页面?大概你正在使用innerHTML(假设你有一个字符串),但这意味着它正在通过IE的HTML解析器传递。这将把它变成(无效)HTML,当你试图检索它时,你会看到你描述的属性被引用的效果(可能是你没有遇到的其他副作用......)。

最好的办法是在变量中保存对返回的XML文档(不是字符串序列化)的引用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top