我有自己的自定义非 jQuery ajax,用于编写 Web 应用程序。我最近在使用 TinyMCE 时遇到了 IE9 的问题,所以我试图切换到 CKeditor
可编辑的文本被包裹在一个 div 中,如下所示:
<div id='content'>
<div id='editable' contenteditable='true'>
page of inline text filled with ajax when links throughout the site are clicked
</div>
</div>
当我尝试使用文档中的示例获取可编辑内容的数据时,出现错误。
我这样做:
CKEDITOR.instances.editable.getData();
得到这个:
未捕获的类型错误:无法调用未定义的方法“getData”
所以我认为它不知道编辑器在 dom 中的位置......我已经尝试通过所有编辑器来获取编辑器名称,但这不起作用 - 似乎没有找到名称。
我试过这个:
for(var i in CKEDITOR.instances) {
alert(CKEDITOR.instances[i].name);
}
警报只是空白 - 因此显然没有与之关联的名称。
我还应该提到,尽管我尽了最大努力,但我似乎无法像在大规模内联编辑示例中那样让可编辑文本出现在其上方的菜单
感谢您提供的任何帮助。
杰森西尔弗
更新:
我在这里炫耀我缺乏知识,但我以前从未遇到过“contenteditable ='true'”,所以认为因为我能够内联输入,因此编辑器以某种方式被实例化......但现在我'我想知道编辑器是否甚至被应用于我的 div。
更新 2:
加载页面并最初调用脚本时,div 不存在。可编辑的 div 使用 AJAX 发送到 DOM。@Zee 在下面留下了一条评论,这让我想知道是否应该调用其他命令才能将编辑器应用于该 div,因此我在页面中创建了一个按钮,并使用以下 onclick 作为测试这种方法的一种方式: (改编自 ajax 示例)
var editor,html='';config = {};editor=CKEDITOR.appendTo('editable',config, html );
这会在 Chrome 中出现以下错误:
> Uncaught TypeError: Cannot call method 'equals' of undefined
> + CKEDITOR.tools.extend.getEditor ckeditor.js:101
> b ckeditor.js:252
> CKEDITOR.appendTo ckeditor.js:257
> onclick www.pediatricjunction.com:410
我是否朝着正确的方向前进?是否有另一种方式以编程方式告诉 CKEditor 将编辑器应用于 div?
更新 3:
感谢@Reinmar,我有一些新的尝试。我测试这是否是解决方案的最明显方法是在内容可编辑 div 上方放置一个按钮,分别调用 CKEDITOR.inlineAll() 和 inline('editable') :
<input type='button' onclick=\"CKEDITOR.inlineAll();\" value='InlineAll'/>
<input type='button' onclick=\"CKEDITOR.inline('editable');\" value='Inline'/>
<input type='button' onclick=\"var editor = CKEDITOR.inline( document.getElementById( 'editable' ) );\" value='getElementById'/>
这在 Chrome 中为所有三个按钮返回了相同类型的错误,即:
Uncaught TypeError: Cannot call method 'equals' of undefined ckeditor.js:101
+ CKEDITOR.tools.extend.getEditor ckeditor.js:101
CKEDITOR.inline ckeditor.js:249
CKEDITOR.inlineAll ckeditor.js:250
onclick
更新 4:
在进一步摆弄之后,我找到了与 json2007.js 相关的问题,这是我使用的一个脚本,可与 Real Simple History (RSH.js) 一起使用。这些脚本的目的是跟踪 ajax 历史记录,因此当我在浏览器中前进和后退时,AJAX 页面浏览量不会丢失。
这是小提琴页面:http: //jsfiddle.net/jasonsilver/3CqPv/2/