Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript CKEDITOR.document和CKEDITOR.dom.document之间有什么区别?_Javascript_Dom_Ckeditor - Fatal编程技术网

Javascript CKEDITOR.document和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

在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.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对象。