2012-07-11 135 views
1

我有一个JTemplate字符串,它看起来像这样转义字符串JTemplate

<a class="add" href="#" onclick="javascript:myfunction('{$T.Properties.Title}')" > 

此代码休息时,我的参数$ T.Properties.Title是包含在这一个单引号字符的字符串。

我可以在传递我的参数值时使用双引号字符,但是我的代码将断开双引号。

如何转义输入字符串,以便我的代码适用于在其中同时具有单引号和双引号的字符串?

回答

0

您需要在创建对象逃跑反斜杠引号:

Properties = {Title: 'I\'m lovin\' my quotes'}; 

编辑:

按您的评论:

在源没有控制,黯然。 :(JSON的来自第三 方站点

您可以尝试使用setTemplate(s, [], {filter_params: true});

它根据the docs使用escapeHTML - 但我还没有尝试过,我不知道它是如何工作的。

看到这个问题,有关与filter_data转义HTML:jtemplates-html-in-variables

或者试试您收到JSON对象后逃逸报价 我BELI。前夜PHP可以使用json_encode - 在这里看到:json-parse-error-with-double-quotes

这里所描述的其他解决方案:javascript-how-escape-quotes-in-a-var-to-pass-data-through-json

+0

在源没有控制,可悲。 :(JSON来自第三方网站。 – ashwnacharya 2012-07-11 10:54:15

0

我有同样的问题,最后我所做的就是逃脱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)) 
} 

干杯.. :)