akg*_*akg 2 javascript dom ckeditor
在ck-editor文档中,CkEDITOR.dom.document被定义为 -
Represents a DOM document.
Run Code Online (Sandbox Code Playgroud)
示例给出 -
var document = new CKEDITOR.dom.document( document )
Run Code Online (Sandbox Code Playgroud)
该函数的参数'document'应该是什么?
同样在CKEDITOR核心代码库中给出了这个定义 -
CKEDITOR.document = new CKEDITOR.dom.document( document );
Run Code Online (Sandbox Code Playgroud)
表示CKEDITOR.document是包含CKEDITOR实例的窗口的文档.例如,可以从窗口的DOM中获取任何内容 -
alert( CKEDITOR.document.getBody().getName() ); // 'body'
Run Code Online (Sandbox Code Playgroud)
我对这两者的重要性以及如何以不同方式使用它们,在何处使用它们感到困惑?
谢谢.
CKEDITOR.document
您注意到CKEDITOR.document
的定义如下
CKEDITOR.document = new CKEDITOR.dom.document( document );
Run Code Online (Sandbox Code Playgroud)
这意味着它是CKEditor库的最顶层 document
.这是包含和加载库的文档.通常,它也是网页的最顶层文档
window.document === CKEDITOR.document.$ // true
Run Code Online (Sandbox Code Playgroud)
CKEDITOR.document
也是所有CKEditor 内联实例的通用文档.所以,如果你创建了许多像
var i1 = CKEDITOR.inline( 'inline1' );
var i2 = CKEDITOR.inline( 'inline2' );
Run Code Online (Sandbox Code Playgroud)
你会注意到他们都共享同一个文件
i1.document.equals( CKEDITOR.document ); // true
i2.document.equals( CKEDITOR.document ); // true
Run Code Online (Sandbox Code Playgroud)
因为WYSIWYG编辑直接在其中的可信元素中进行CKEDITOR.document
.
CKEDITOR.document
和 editor.document
另一方面,网页中可能有许多子文档,即因为每个<iframe>
window
window.document
子文档都是新的和.这正是当你创建一个经典的编辑器实例时会发生的事情,这个实例带来了一个<iframe>
带有满足感的主体进行编辑(是的,你正在编辑文本,而<iframe>
不是<textarea>
).
您可能会注意到每个实例都有自己的单独document
(CKEDITOR.editor-property-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
Run Code Online (Sandbox Code Playgroud)
每个实例都调用new CKEDITOR.dom.document( documentWithinAnIframe )
并分配给它editor.document
.
所以总结一下
CKEDITOR.document
是document
包含和加载CKEditor库的最顶层的.editor.document
是与编辑器实例关联的文档.所有内联实例共享同一文档(CKEDITOR.document
),而所有经典实例都有自己的文档.CKEDITOR.dom.document
是CKEditor库的构造函数,它包含本机DOM文档CKEDITOR.dom.domObject
,向用户公开了很好的API(如equals()
方法),以便在代码中进行操作.
CKEDITOR.dom.element
文档而不是元素.CKEDITOR.document
和editor.document
的实例CKEDITOR.dom.document
. 归档时间: |
|
查看次数: |
1096 次 |
最近记录: |