var test='<%passtoserver%>';
If the value provided for 'passtoserver' was "Don't do this", then the javascript generated by your template would be:
var test='Don't do this';
That is a syntax error. So you need to change your template to contain lines more like:
var test='<% passtoserver | js_str %>';
or, perhaps even better:
var test=<% passtoserver | js_str %>;
where the "| js_str" tells the template to properly escape any characters that need to be escaped in order to be included verbatim inside of a javascript string literal (and, in the second case, also adds the enclosing quote marks).
And, no, Template::Toolkit doesn't come with a pre-built js_str filter so you'll have to create that as well.
Your problem case is due to the \ character not being escaped for similar reasons. So your template produces javascript code like:
var test='[{"name":"test","problem":"here is the problem \" com
+ma "}]';
And, in javascript, '\"' is the same value as '"'.
|