Jquery TinyMCE:TypeError:K未定义
我在现有的插件中添加了一个按钮(该插件工作得非常好)。该按钮动态创建虚拟键盘Jquery TinyMCE:TypeError:K未定义,jquery,tinymce,nullreferenceexception,typeerror,Jquery,Tinymce,Nullreferenceexception,Typeerror,我在现有的插件中添加了一个按钮(该插件工作得非常好)。该按钮动态创建虚拟键盘$('#vkb'),让用户选择一些符号。我第一次在tinyMCE上执行该按钮时,它就工作了,我可以选择符号并将它们插入到tinyMCE编辑器中 但是在第一个正常运行的实例中,我得到了错误TypeError:K是未定义的。当前实例继续工作,尽管调用ed.execCommand会不断出现K undefined错误。但在此之后,创建TinyMCE工具栏的所有其他实例都会发生以下情况: ed.execCommand('mceIn
$('#vkb')
,让用户选择一些符号。我第一次在tinyMCE上执行该按钮时,它就工作了,我可以选择符号并将它们插入到tinyMCE编辑器中
但是在第一个正常运行的实例中,我得到了错误TypeError:K是未定义的。当前实例继续工作,尽管调用ed.execCommand会不断出现K undefined
错误。但在此之后,创建TinyMCE工具栏的所有其他实例都会发生以下情况:
ed.execCommand('mceInsertContent',false,str)中的代码>命令
插件代码不起作用,并且
出现此错误:t为null
(我认为t
最有可能是this
,即编辑器本身)
以下是我的代码:
// Registering the command
ed.addCommand('mceArIndic', function() {
_dovkb();
function _dovkb()
{ // some code for a virtual keybaord that lets users choose indic symbols
// the final symbols are stored in a variable called 'ret'
// I want ret's contents to be inserted in the tinymce editor
// the code below is what happens when the closing key on the virtual keyboard is clicked:
$('#vkbstop').live('click',function(e){
var ret = $('#numoutput').val();
$('#numoutput').val('');
$('#vkb').remove();
console.log("t.inserting");
/* THIS IS WHERE K SOMETIMES BECOMES UNDEFINED, THEN ALL */
/* DYNAMICALLY-CREATED TINMYCE INSTANCES THAT FOLLOW HAVE T AS NULL */
ed.execCommand('mceInsertContent', false, ret);
toprint = '';
});
// Register arindic button
ed.addButton('arindic', {
title : 'Type Arabic/Indic digits',
cmd : 'mceArIndic',
image : url + '/img/indic.png'
});
在代码末尾,插件被正确注册
我想也许编辑器还没有完成加载,但事实并非如此,因为我在等待了很长时间之后也尝试过。为什么ed.execCommand
有时会给出K为null
错误,为什么在这之后,所有对命令的尝试都会说t为null
,尽管不是,因为其他按钮工作正常
编辑
切换到tiny_mce_dev.js后,它给了我一个稍微不同的错误,不是“K”,而是“selection”:
TypeError:选择为空
更多信息:
ieRng=selection.getRng()
-Editor.js第897行我注意到@Thariama似乎在TinyMCE有很好的经验。。。我希望你这么快就来!谢谢。你能把tiny_mce_dev.js改为tiny_mce.js(?)(可通过tinymce开发者下载版获得)吗。这将提供一些关于错误的更有用的信息我刚刚下载了开发包。。。但是没有jQuery版本,我已经在jQuery中进行了开发。您不需要tinymce的jQuery版本,最好在主页上加载jQuery并使用常规的tinymce构建,所有tinymce应用程序/自己的插件都可以使用jQuery。init看起来有点不同,但是jQuery构建会导致一些问题,而且速度非常慢(特别是在键盘输入处理方面),因为对象创建过程中,我添加了javascript开发版本并进行了尝试。它给了我一个稍有不同的错误,而不是“K”,而不是“selection”:TypeError:selection为null
包含更多信息:ieRng=selection.getRng();-Editor.js第897行