使用freemarker赋值给js变量,变量包含换行会报错

这个问题百度找不到答案,后来自己摸索解决了

<script type="text/javascript">

       var editor1 = ace.edit("request_body");
        editor1.setTheme("ace/theme/tomorrow");
        editor1.session.setMode("ace/mode/javascript");
    <#if mockDto.body !!>
            var val = '${mockDto.body}';//这里如果有换行符会报错
            editor2.session.setValue(val);
        </#if>
</script>

页面控制台会报错

解决办法:

在页面加一个隐藏域,先用freemarker赋值,再读取这个隐藏域的值

...
//这里加个?html为了解决,文本是HTML,页面出现问题
<input type="hidden" name="body_value" value="${mockDto.body?html}"/> ... <#if mockDto.body !!> var val = $("input[name='body_value']").val(); editor2.session.setValue(val); </#if>

解决问题!!!!

 

posted @ 2018-03-07 15:01  乱码出黑客  阅读(1484)  评论(0编辑  收藏  举报