ReferenceError:未定义 ClassicEditor(ckeditor5,ASP.NET MVC)

ReferenceError: ClassicEditor is not Defined (ckeditor5, ASP.NET MVC)

提问人:Freerey 提问时间:11/2/2023 最后编辑:Freerey 更新时间:11/4/2023 访问量:42

问:

昨天我从官方网站下载了 build ckeditor5(版本 40)的经典编辑器,正在努力将其实现到我的 ASP.NET MVC 网站中。按照他们的 .NET 教程,我尝试创建一个简单的所见即所得编辑器,但经常遇到我看到其他人使用 CKEditor5 遇到的消息,即使在从他们的网站上下载并尝试模仿 ClassicEditor 的 MRE 之后也是如此。ReferenceError: ClassicEditor is not Defined

这是我的代码的样子,注意到多个 Bootstrap 和 jQuery 链接由此存储库外部的核心库处理,这意味着脚本通常加载到它们自己的 Razor 中:@RenderSection

@section Scripts {
  <script src="/js/ckeditor.js"></script>
  <script>
    ClassicEditor
      .create($('#ckeditor'))
      .catch(error => {
          console.error(error);
      });
  </script>
}
<div class="row form-group">
  <div class="col-xl-6 col-lg-6 col-md-12 col-sm-12">
    <div class="row">
      <div class="col-md-12">
        <textarea class="ckeditor" id="ckeditor"></textarea>
      </div>
    </div>
  </div>
</div>

我已经尝试过的一些建议包括:

  1. 替换为 CDN 链接/js/ckeditor.js
  2. 将 ClassicEditor 放置在 jQuery 的内部和外部$(function(){})
  3. 在脚本中设置window.ClassicEditor=ClassicEditor
  4. 设置var ClassicEditor = require('js/ckeditor')
javascript jquery asp.net-mvc 剃刀 ckeditor5

评论


答:

0赞 Freerey 11/4/2023 #1

该行似乎被忽略的原因是,正如核心库所规定的那样,脚本通常在 Razor 中处理,该文件在输入时未确认 ckeditor.js 文件,从而导致标题错误。<script src="/js/ckeditor.js"></script>@RenderSection

解决这个问题的方法是将 ckeditor.js 文件放在外面,如下所示:@RenderSection

<script src="/js/ckeditor.js"></script>
@section Scripts {
  <script>
    ClassicEditor
      .create($('#ckeditor'))
      .catch(error => {
          console.error(error);
      });
  </script>
}

通过此修复,ClassicEditor 将完全按预期工作。