【发布时间】:2013-12-03 22:43:32
【问题描述】:
由于 IE 11 更新,我遇到了一个刚刚开始的问题。在 IE 9,10、FF 和 Chrome 中一切正常。
我知道它来自 xml 节点 (partdesc) 值,因为值中有空格 (CSP 100-130)。我尝试使用双引号,我尝试替换单引号以确保它们是正确的。如果我更改 XML 数据以删除空间,IE 11 不会抱怨。我检查了空间以确保它是 ascii 32,并且我尝试以各种方式对 xml 进行编码。到目前为止,除了删除空间之外,我没有尝试过任何尝试。
确切的未终止字符串常量错误(来自 IE 调试器)
SCRIPT1015:未终止字符串常量
文件:SFCPacking,行:1,列:43
生成的 HTML 看起来不错,但是一旦出现未终止的字符串常量错误,点击事件将不起作用。
生成的 HTML:
<a href="javascript:void(0);" onclick="showCreate('98522000000000000000000','CSP 105-140','7500','4167','9595')"> - create ticket - </a>
我有从后端返回的 XML 数据,该数据使用 XSLT 解析器进行了转换。解析器不会抛出任何错误,XML 文档阅读器也不会。
任何帮助将不胜感激!
XML 数据如下所示:
<?xml version="1.0"?>
<!DOCTYPE XMLUtilResults>
<XMLUtilResults>
<readonly>0</readonly>
<canapprove>1</canapprove>
<sfcsec>4</sfcsec>
<srsec>4</srsec>
<tsec>4</tsec>
<view>Open</view>
<packparts>
<part recid="IDX985110000000000000000009595">
<partno>98511000000000000000000</partno>
<partdesc>CSP 100-130</partdesc>
<availqty>3758</availqty>
<onhand>3758</onhand>
<invlocid>9595</invlocid>
<invloc>0005</invloc>
<invlocname>NACO Plant</invlocname>
<qtypacked/>
<sfcqty/>
<opendemand/>
<moq>7500</moq>
</part>
</packparts>
<success>1</success>
<OpenTickets>1</OpenTickets>
</XMLUtilResults>
发生错误的 XSLT 部分:
<a href="javascript:void(0)">
<xsl:attribute name="onclick">showCreate('<xsl:value-of select="partno"/>','<xsl:value-of select="partdesc"/>','<xsl:value-of select="moq"/>','<xsl:value-of select="availqty"/>','<xsl:value-of select="invlocid"/>')</xsl:attribute>
- create ticket -
</a>
用于转换 XML (XSLT) 的 JavaScript
var xml = new ActiveXObject("MSXML2.DomDocument.3.0");
xml.async = false;
xml.setProperty("ProhibitDTD", false);
xml.load(xmlResp);
var xsl = new ActiveXObject("MSXML2.FreeThreadedDomDocument.3.0");
xsl.async = false;
xsl.load(xslFile);
xsl_template = new ActiveXObject("Msxml2.XSLTemplate")
xsl_template.stylesheet = xsl;
xslProc = xsl_template.createProcessor()
xslProc.input = xml
if(paramObj){
for(i=0;i<paramObj.pName.length;i++){
xslProc.addParameter(paramObj.pName[i], paramObj.pValue[i])
}
}
xslProc.transform()
document.getElementById(targetObj).innerHTML = xslProc.output
【问题讨论】:
-
为了更新这一点,我能够确定 IE11 和 XSLT 转换将任意换行符放入数据 它导致了这个错误。现在,如何解决?
标签: xml xslt internet-explorer-11