Javascript CKEDITOR.document和CKEDITOR.dom.document之间有什么区别?
在ck编辑器文档中,CkEDITOR.dom.document定义为-Javascript CKEDITOR.document和CKEDITOR.dom.document之间有什么区别?,javascript,dom,ckeditor,Javascript,Dom,Ckeditor,在ck编辑器文档中,CkEDITOR.dom.document定义为- Represents a DOM document. 举例如下— var document = new CKEDITOR.dom.document( document ) 此函数的参数“document”应该是什么 同样在CKEDITOR核心代码库中,给出了该定义- CKEDITOR.document = new CKEDITOR.dom.document( document ); 这表示CKEDITOR.docume
Represents a DOM document.
举例如下—
var document = new CKEDITOR.dom.document( document )
此函数的参数“document”应该是什么
同样在CKEDITOR核心代码库中,给出了该定义-
CKEDITOR.document = new CKEDITOR.dom.document( document );
这表示CKEDITOR.document是包含CKEDITOR实例的窗口的文档。可以从窗口的DOM中获取任何内容,例如-
alert( CKEDITOR.document.getBody().getName() ); // 'body'
我对两者的意义以及如何不同地使用它们感到困惑,在哪里使用它们
谢谢。CKEDITOR.document
正如您所注意到的,CKEDITOR.document
的定义如下
CKEDITOR.document = new CKEDITOR.dom.document( document );
这意味着它是CKEditor库的最顶层的文档。这是包含和加载库的文档。通常,它也是网页中最上面的文档
window.document === CKEDITOR.document.$ // true
CKEDITOR.document
也是所有CKEDITOR的通用文档。所以,如果你创造了一个像这样的数字
var i1 = CKEDITOR.inline( 'inline1' );
var i2 = CKEDITOR.inline( 'inline2' );
您会注意到它们都共享同一个文档
i1.document.equals( CKEDITOR.document ); // true
i2.document.equals( CKEDITOR.document ); // true
因为所见即所得编辑直接进入CKEDITOR.document
中的元素
var c1 = CKEDITOR.replace( 'textarea1' );
var c2 = CKEDITOR.replace( 'textarea2' );
c1.document.equals( CKEDITOR.document ); // false
c2.document.equals( CKEDITOR.document ); // false
c1.document.equals( c2.document ); // false
CKEDITOR.document
和editor.document
另一方面,网页中可能有许多子文档,这是因为每个
都意味着新的窗口和窗口。文档
。这正是当您创建一个新的
时所发生的情况,该新的
带有用于编辑的正文(是的,您正在和
中编辑文本,而不是
)
您可能会注意到,每个实例都有自己独立的文档
(),这些文档与CKEDITOR.document
没有任何关系
var c1 = CKEDITOR.replace( 'textarea1' );
var c2 = CKEDITOR.replace( 'textarea2' );
c1.document.equals( CKEDITOR.document ); // false
c2.document.equals( CKEDITOR.document ); // false
c1.document.equals( c2.document ); // false
每个实例调用new CKEDITOR.dom.document(DocumentWithIniFrame)
并将其分配给editor.document
var c1 = CKEDITOR.replace( 'textarea1' );
var c2 = CKEDITOR.replace( 'textarea2' );
c1.document.equals( CKEDITOR.document ); // false
c2.document.equals( CKEDITOR.document ); // false
c1.document.equals( c2.document ); // false
结论
总而言之
- 是最顶层的
文档
,其中包含并加载了CKEditor库
- 是与编辑器实例关联的文档。所有人共享同一文档(
CKEDITOR.document
),而所有人都有自己的文档
- 是一个CKEditor库的构造函数,它将本机DOM文档包装到其中,向用户(如方法)公开漂亮的API,以便在代码中进行操作。
- 它类似于但用于文档而不是元素
CKEDITOR.document
和editor.document
都是CKEDITOR.dom.document
的实例
好的,我现在详细了解了CKEDITOR的每个元素的含义。不过,只有一个问题-如何在jquery对象中创建CKEDITOR.dom.element对象?我上面的语句的意思是-通过使用dialog.getContentElement().getElement())API我可以得到CKEDITOR.dom.element的实例,我可以使用像getId这样的方法来获得它的本地dom ID。但是如何将它转换为jquery对象,以便调用高级jquery方法呢?再次感谢。dialog.getContentElement().getElement()。$
应该为您提供一个本机DOM对象<代码>$(dialog.getContentElement().getElement().$)
应返回jQuery对象。