ckeditor javascript文件包装器

时间:2011-07-26 15:52:12

标签: ckeditor

在寻找导航编辑器文本区域元素的代码时,我找到了以下答案。代码有效,唯一的问题是我不明白为什么..

var documentWrapper = editorname.document; //replace by your CKEDitor instance ID 
var documentNode = documentWrapper.$; // or documentWrapper['$'] ; 

答案来自下面的stackOverflow链接:

ckeditor scrollIntoView to a div element within the editor

特别是有人可以向我解释语法documentWrapper。$;

我不知道这意味着什么?

由于

2 个答案:

答案 0 :(得分:0)

@oggiemc

“$”表示C​​KEDITOR类对象指向的实际DOM对象。 在这种情况下,您正在使用“CKEDITOR.dom.document”类。在这里找到文档: http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.dom.document.html

名为“documentWrapper”的对象是CKEDITOR对象。它将具有CKEDITOR API文档中针对该类对象描述的任何属性。你也可以使用CKEDITOR方法。

当您使用“documentWrapper。$”时,您正在使用文档对象模型规范中描述的DOM对象。请参阅此处的规格: http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/

此对象将具有DOM规范中针对此对象类型描述的属性。您不会在此对象上使用CKEDITOR方法,您可以使用DOM规范中描述的方法来处理此对象类型。

因此“$”是CKEDITOR类对象指向的任何DOM对象(document,head,body,div,span,p等)的通用表示。

documentWrapper.someFunction();将在CKEDITOR类对象上使用CKEDITOR方法。 documentWrapper $ someFunction()。将在DOM对象上使用DOM方法。

答案 1 :(得分:0)

作为插件/对话框的参数传递的编辑器与getParentEditor()返回的编辑器之间的区别。

它们通常是同一个对象。但是如果在一个页面上有多个编辑器实例,则需要使用getParentEditor来确保使用正确的编辑器实例。

特别是如果多个编辑器共享一个toobar:如何获取多个CKEditor实例来共享同一个工具栏? http://docs.cksource.com/CKEditor_3.x/Howto/Shared_Toolbar

您可以查看CKEditor目录中对话框单选按钮的代码: CKEditor的\ _source \插件\形式\对话框\ radio.js

或在文档网站上: http://docs.cksource.com/ckeditor_api/symbols/src/plugins_forms_dialogs_radio.js.html


加载插件时,它使用活动编辑器实例加载标题和标签的文本,因为它们对于共享工具栏的所有实例都是相同的:

ckeditor_source \插件\形式\对话框\ radio.js(5): CKEDITOR.dialog.add('radio',函数(编辑)

(42)label:editor.lang.checkboxAndRadio.radioTitle, (43)title:editor.lang.checkboxAndRadio.radioTitle,


但对于对话框中使用的方法,它使用getParentEditor(),以便在正确的编辑器实例上执行操作: ckeditor_source \插件\形式\对话框\ radio.js(30): editor = this.getParentEditor();

(22)onOk:function()........ editor = this.getParentEditor();