在寻找导航编辑器文本区域元素的代码时,我找到了以下答案。代码有效,唯一的问题是我不明白为什么..
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。$;
我不知道这意味着什么?
由于
答案 0 :(得分:0)
@oggiemc
“$”表示CKEDITOR类对象指向的实际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();
乔