如何检索 CKEDITOR.status “就绪”?

Posted

技术标签:

【中文标题】如何检索 CKEDITOR.status “就绪”?【英文标题】:How to retrieve the CKEDITOR.status "ready"? 【发布时间】:2013-08-29 22:49:18 【问题描述】:

在我的脚本中,我想等待 CKEDITOR 处于状态 ready,然后再让我自己的指令按照他们的方式进行。于是我咨询了CKEDITOR API,写了如下条件:

if(CKEDITOR.status == "ready")
 //execute my code when ready

但是,状态永远不会从 loaded 更改为 status。显然我什至没有看到任何其他状态。

更具体的任务,我想捕捉 CKEDITOR 完成修改 contenteditable="true" 的内联替换的那一刻。那时我想继续编写我的 JS 代码。

有什么线索吗?

【问题讨论】:

我不确定 CKEDITOR.status 或“已加载”事件在 CKEditor 4 中是否有效,因为 AFAIK “延迟加载”系统是 CKEditor 的另一部分,随着引入4.x 系列。即使它们有效,它们也与页面中编辑器的初始化无关,您必须为每个 instanceReady 使用侦听器,如提供的答案所示。 【参考方案1】:

如果您想在 API 完全加载时执行您的代码,请使用 CKEDITOR.loaded 事件:

CKEDITOR.on( 'loaded', function( evt ) 
    // your stuff here
 );

如果您想在任何新实例准备就绪时执行您的代码,请使用CKEDITOR.instanceReady event:

CKEDITOR.on( 'instanceReady', function( evt ) 
    // your stuff here
 );

如果您想在 特定实例 准备就绪时执行代码,请使用 CKEDITOR.editor.instanceReady 事件:

CKEDITOR.replace( 'editor', 
    on: 
        instanceReady: function( evt ) 
            // your stuff here
        
    
 );

【讨论】:

提示:事件触发器在evt.editor内的编辑器,evt.editor.element.$内的原始元素 @oleq 你能在 ckeditor5 文档版本中添加如何做到这一点吗? @always-a-learner 在 CKEditor 5 中,当您调用 ClassicEditor.create( ... ).then( editor => console.log() ) 承诺链时,编辑器实例已在 then() 块中准备就绪。 Learn more.【参考方案2】:

CKEDITOR 中没有ready 状态,你可以使用loaded like:

if ( CKEDITOR.status == 'loaded' ) 
    // The API can now be fully used.
    doSomething();

或使用instanceReady,例如:

CKEDITOR.on('instanceReady', function(evt) 
   //ready
  //do something
);

【讨论】:

是的,下面只有这些,按顺序排列。但是,我想抓住 CKEDITOR 完成修改 contenteditable="true" 的内联替换的那一刻。任何线索。 unloaded:API 尚未加载。 basic_loaded:基本 API 功能可用。 basic_ready:基本 API 已准备好加载完整的核心代码。已加载:API 可以完全使用。 @feder 在这种情况下你可以使用'insanceReady'【参考方案3】:

正如@Sudhir 所指出的,直接属性值和instanceReady 方法之间存在细微差别。

如果您需要在 CKEDITOR 不仅完成其加载过程,而且完成整个后处理时收到通知,请使用事件侦听器。特别是 html 替换和注入。

【讨论】:

以上是关于如何检索 CKEDITOR.status “就绪”?的主要内容,如果未能解决你的问题,请参考以下文章

minReadySeconds 如何影响就绪探测?

硬件重置后如何检查英特尔实感设备是不是准备就绪?

如何通过更改CPU利用率或内存利用率或磁盘压力将Kubernetes节点状态从“就绪”更改为“未就绪”?

如何在调用 NSFetchedResultsController 方法之前确保 UIManagedDocument 准备就绪?

如何知道数据库何时准备就绪?

XMLHttpRequest 中不同的就绪状态是啥意思,我该如何使用它们?