2010-01-12 43 views
3

我们有这个Smarty函数返回模板的HTML代码。但是,函数也可能返回一个空字符串,我们现在希望识别它。我们的系统已经运行稳定多年,所以我正在寻找最少侵入性的可能解决方案。做smarty函数的返回值吗?

是否可以将返回值赋给smarty变量?但是,由于部分HTML是用户生成的,因此返回字符串可能是双引号和单引号的混合,这会在IE中导致问题(不幸的是,我们的大多数用户群)。

<script type="text/javascript"> 
var html = '{smarty function}'; //IE chokes on mixed quotes 
</script> 

任何帮助表示赞赏!

回答

6

使用escape修改,例如:

{$variable|escape:'quotes'} 

对于Smarty的功能,你可以先尝试,如果{smarty_function|escape:'quotes'}的作品,如果没有,那么你必须给函数的输出之前,首先分配到一个变量逃脱它,并为此使用capture

{capture name=mycapture}{smarty_function}{/capture} 
{$smarty.capture.mycapture|escape:'quotes'} 
+0

你刚刚做了我的一天。非常感谢! – jodeci 2010-01-12 03:43:04