无法为CKEditor ASP.NET读取null的属性'unselectable'

时间:2017-12-08 10:33:24

标签: javascript asp.net-mvc asp.net-mvc-4 ckeditor

我在(create.cshtml)中有一个基本的HTML表单,我在主布局中调用了CKEditor.js(_layout.cshtml) 当我在一个单独的项目中使用相同的代码时,它工作正常,但在我的ASP.NET项目中,我收到此错误:    未捕获的TypeError:无法读取属性'unselectable'为null

Create.cshtml:

<form>
    <textarea id="prop_editor" name="prop_editor">
         <h2>WYSIWYG Editor</h2>
         <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam ullamcorper sapien non nisl facilisis bibendum in quis tellus. Duis in urna bibendum turpis pretium fringilla. Aenean neque velit, porta eget mattis ac, imperdiet quis nisi. Donec non dui et tortor vulputate luctus. Praesent consequat rhoncus velit, ut molestie arcu venenatis sodales.</p>
         <h3>Lacinia</h3>
         <ul>
              <li>Suspendisse tincidunt urna ut velit ullamcorper fermentum.</li>
              <li>Nullam mattis sodales lacus, in gravida sem auctor at.</li>
              <li>Praesent non lacinia mi.</li>
              <li>Mauris a ante neque.</li>
              <li>Aenean ut magna lobortis nunc feugiat sagittis.</li>
         </ul>
         <h3>Pellentesque adipiscing</h3>
         <p>Maecenas quis ante ante. Nunc adipiscing rhoncus rutrum. Pellentesque adipiscing urna mi, ut tempus lacus ultrices ac. Pellentesque sodales, libero et mollis interdum, dui odio vestibulum dolor, eu pellentesque nisl nibh quis nunc. Sed porttitor leo adipiscing venenatis vehicula. Aenean quis viverra enim. Praesent porttitor ut ipsum id ornare.</p>

     </textarea>
</form>

_layout.cshtml

<script type="text/javascript">
     CKEDITOR.replace('prop_editor');
</script>

5 个答案:

答案 0 :(得分:4)

在我的Laravel项目中启用身份验证后,我经历了类似的事情。

CKEDITOR.replace('textarea_id');

命令引发了同样的错误。

我确定包含app.js脚本导致了问题。删除

<script src="{{ asset('js/app.js') }}" defer></script>

标签解决了这个问题。当然,这打破了一些身份验证功能,所以不是一个好的解决方案。

经过一些徒劳无功的探索后,我发现删除了#34;延迟&#34;脚本标签中的关键字解决了问题。我不知道为什么。看看你的标签;这可能有所帮助。

答案 1 :(得分:2)

我遇到了同样的问题并找到了对我有用的解决方案 在app.blade.php中 更改

<script src="{{ asset('js/app.js') }}" defer></script>

<script type="text/javascript" rel="script" src="{{asset('js/app.js')}}"></script>

答案 2 :(得分:0)

您必须替换

<script src="//cdn.ckeditor.com/4.11.1/basic/ckeditor.js"></script>
<script type="text/javascript">
    CKEDITOR.replace( 'editor1' );
</script>

在jquery.js之后

答案 3 :(得分:0)

其原因可能是在包含CKEditor之前尚未加载所有必需的功能。验证所有现有应用程序脚本以进行异步下载,然后进行相应调整。

这可以通过删除标记属性(例如“ defer”或“ async”)来实现。

  

重要:任意的加载/执行对于速度优化都是有意义的。

还可以检查此问题: Script Tag - async & defer

答案 4 :(得分:0)

尝试在加载新的CK-Editor之前销毁先前打开的CK编辑器

for (name in CKEDITOR.instances) {
        CKEDITOR.instances[name].destroy()
	}