You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

更新表单中无法为Summernote WYSIWYG编辑器设置值的求助

解决Summernote编辑器赋值时的HTML转义问题

我来帮你搞定这个问题!你遇到的错误核心原因很明确:直接把带HTML标签的内容输出到JavaScript变量里时,HTML里的引号、换行或者特殊字符会破坏JS的字符串语法规则,导致浏览器抛出SyntaxError。

最直接的解决方案:用json_encode处理变量

Laravel提供的json_encode()函数可以自动帮你把PHP字符串转换成合法的JavaScript字符串,它会自动转义所有需要处理的特殊字符(比如双引号、换行符、HTML标签里的特殊符号等)。修改你的代码如下:

$(document).ready(function(){
  var markupStr = {!! json_encode($college->overview) !!};
  $('.overview').summernote('code', markupStr);
});

这样处理后,$college->overview里的HTML内容会被转成JS能正确识别的字符串,不会再出现语法错误。

备选方案:通过隐藏DOM元素读取内容

如果你的HTML内容特别复杂,也可以先把内容放到一个隐藏的DOM元素中,再用jQuery读取它的HTML内容,这种方式不需要手动处理转义:

首先在HTML里添加一个隐藏元素:

<div id="hidden-overview" style="display: none;">{!! $college->overview !!}</div>

然后修改JavaScript代码:

$(document).ready(function(){
  var markupStr = $('#hidden-overview').html();
  $('.overview').summernote('code', markupStr);
});

为什么原来的写法会报错?

你之前直接用{!! $college->overview !!}输出内容,假设$college->overview的内容是<p>这是一段带"引号"的内容</p>,那么输出后的JS代码会变成:

var markupStr = <p>这是一段带"引号"的内容</p>;

显然这不是合法的JavaScript语法,浏览器会把<当成新的HTML标签的开始,直接抛出语法错误。

内容的提问来源于stack exchange,提问作者Sapnesh Naik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:50:58