2012-07-11 99 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)) 
} 

乾杯.. :)