WordPress中TinyMCE插件初始化失败:r is not a constructor错误求助
问题:WordPress中TinyMCE插件初始化失败及动态元素加载时机问题
问题描述
我有一个WordPress网站,设有用户创建文章的页面。已配置TinyMCE将表单内特定字段转换为TinyMCE编辑器字段,基础功能正常,但多数自带插件无法工作,反复出现错误:Failed to initialize plugin: wordcount TypeError: r is not a constructor。在全新WordPress安装环境中测试该问题仍存在。
codesample插件错误栈信息
at Ew (wp-tinymce.php?ver=2.0.0-dev1:2:330473) at Array.<anonymous> (wp-tinymce.php?ver=2.0.0-dev1:2:332223) at Object.jt [as each] (wp-tinymce.php?ver=2.0.0-dev1:2:29356) at Aw (wp-tinymce.php?ver=2.0.0-dev1:2:332173) at tN.<anonymous> (wp-tinymce.php?ver=2.0.0-dev1:2:333551) at Array.<anonymous> (wp-tinymce.php?ver=2.0.0-dev1:2:96969) at jt (wp-tinymce.php?ver=2.0.0-dev1:2:29356) at u (wp-tinymce.php?ver=2.0.0-dev1:2:96914) at n (wp-tinymce.php?ver=2.0.0-dev1:2:96402) at l.<computed>.l.<computed>.l.<computed>.o.onload (wp-tinymce.php?ver=2.0.0-dev1:2:96652)
当前使用的TinyMCE初始化代码
jQuery(document).ready(function($){ tinymce.init({ selector: '.tinymce>div>div>textarea', suffix: ".min", height: 200, plugins: "codesample autosave code image link lists media preview searchreplace textcolor wordcount hr", autosave_restore_when_empty: true, autosave_retention: '60m', codesample_languages: [ {text: 'HTML/XML', value: 'markup'}, {text: 'JavaScript', value: 'javascript'}, {text: 'CSS', value: 'css'}, {text: 'PHP', value: 'php'}, {text: 'Ruby', value: 'ruby'}, {text: 'Python', value: 'python'}, {text: 'Java', value: 'java'}, {text: 'C', value: 'c'}, {text: 'C#', value: 'csharp'}, {text: 'C++', value: 'cpp'}, {text: 'Markup', value: 'markup'}, {text: 'Arduino', value: 'arduino'}, {text: 'ARM Assembly', value: 'armasm'}, {text: 'Batch', value: 'batch'}, {text: 'Bash', value: 'bash'}, {text: 'ASP.NET (C#)', value: 'aspnet'}, {text: 'Brainfuck', value: 'brainfuck'}, {text: 'JSON', value: 'json'}, {text: 'Markdown', value: 'markdown'}, {text: 'TypeScript', value: 'typescript'}, {text: 'ASP.NET (C#)', value: 'aspnet'}, {text: 'Rust', value: 'rust'} ], toolbar: 'preview searchreplace | codesample image link | lists hr | bold italic textcolor | h1 h2 h3 h4 | alignleft aligncenter alignright | bullist numlist outdent indent | undo red | wordcount-', // content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px }' }); });
核心困惑
特别重要:上述代码必须粘贴到浏览器控制台才能生效,原因是编辑器元素通过JS动态添加,初始化函数执行时元素尚未加载,不知道该如何处理这个时机问题。
内容的提问来源于stack exchange,提问作者treepek
相关产品推荐
相关产品推荐

