我有一个JTemplate字符串,如下所示
<a class="add" href="#" onclick="javascript:myfunction('{$T.Properties.Title}')" >当我的参数$T.Properties.Title是一个包含单引号字符的字符串时,这段代码就会中断。
我可以在传递参数值时使用双引号字符,但是我的代码会因为双引号而中断。
如何对输入字符串进行转义,以便我的代码能够处理同时包含单引号和双引号的字符串?
发布于 2012-07-11 18:39:47
在创建对象时,需要使用反斜杠对引号进行转义:
Properties = {Title: 'I\'m lovin\' my quotes'};编辑:
根据您的评论:
可悲的是,
无法控制源代码。:( JSON来自第三方站点
您可以尝试使用setTemplate(s, [], {filter_params: true});
根据the docs的说法,它使用的是escapeHTML --但我没有尝试过,我也不确定它是如何工作的。
查看这个关于使用filter_data转义HTML的问题:jtemplates-html-in-variables
或者在收到JSON对象后尝试转义引号。我相信在PHP中你可以使用json_encode --请看这里:json-parse-error-with-double-quotes
此处介绍的其他解决方案:javascript-how-escape-quotes-in-a-var-to-pass-data-through-json
发布于 2013-02-23 03:51:50
我也遇到了同样的问题,最后我做的就是跳过java脚本中的引号。
以下是我的代码。
在模板中:
$('#content').setParam('getUrl', getUrl);在HTML中;在模板中。
href="{$P.getUrl($T.RESULTS.URL)}"JS方法:
function(theLink){
return theLink.replace(/\"/g, "%22");
//If you want to escape all the characters use the following
return escape((theLink))
}干杯..:)
https://stackoverflow.com/questions/11430534
复制相似问题