我有一个.xsl文件,其HTML格式如下:
<input onblur="resetText(this,'octobre à décembre')" />
显然,这不会按原样运作,所以我必须逃避它。这就是我尝试过的:
<xsl:text disable-output-escaping="yes"><![CDATA[
<input onblur="resetText(this,'octobre à décembre')" />
]]></xsl:text>
这不起作用,我在浏览器中获得Uncaught SyntaxError: Unexpected identifier
。
我在这里缺少什么?
答案 0 :(得分:1)
显然,这不会按原样运作
没有什么明显的。在XSLT中,您可以使用Unicode字符而无需转义(假设您的编码为UTF-8或类似)。您无法使用未定义的实体,例如à
。
如果您需要输出将重音字符转义为HTML实体,请尝试将输出方法设置为HTML(可能不适用于每个XSLT处理器)。
答案 1 :(得分:0)
我不是这方面的专家,但我想知道您是否让浏览器知道要使用哪种字符编码?
我使用UTF-8
确保将文件保存/转换为utf-8,并确保指定字符编码
<?xml version="1.0" encoding="utf-8"?>
答案 2 :(得分:0)
你不会发布resetText()
,但这是我提出的那个让事情有用的人:
// remove second param when calling from onblur
// assumes input value has decoded html entities
function resetText(input) {
var rawStr = input.value;
var encodedStr = rawStr.replace(/[\u00A0-\u9999<>\&]/gim, function(i) {
return '&#'+i.charCodeAt(0)+';';
});
input.value = encodedStr;
}