gpt4 book ai didi

javascript - SetHTML 之后立即在 FCKeditor 上 ResetIsDirty -- Javascript 的并发/计时问题

转载 作者:行者123 更新时间:2023-11-28 10:27:27 27 4
gpt4 key购买 nike

我正在使用 IsDirty 来检查 FCKeditor 中的更改。不幸的是,它的功能似乎是异步的。

这是失败的代码:

var txtObj = $('activities').EstActText1.id;
var oEditor = FCKeditorAPI.GetInstance(txtObj);
oEditor.SetHTML(jsonObj.DATA.ESTACTTEXT1.toString());
oEditor.ResetIsDirty();

问题是,SetHTML 不会立即生效(如果您在使用 GetHTML 之后立即进行检查,它将返回文本区域中之前的内容)。因此,ResetIsDirty 将运行,然后 HTML 将实际更改,并且脏标志将再次设置。

有什么方法可以在继续之前强制 SetHTML 调用完成吗?如果没有,是否有任何方法(除了会增加延迟且不一定总是有效的 ghetto setTimeout 调用之外)来确保 ResetIsDirty 在 HTML 更改后真正生效?

最佳答案

我仍然对直接答案感兴趣,但我倾向于认为这不太可行。它需要某种 sleep 函数,但 JavaScript 并没有进入这个领域。

但是,您应该要做的是处理 FCKeditor_OnComplete 事件:

function FCKeditor_OnComplete( editorInstance )
{
editorInstance.Events.AttachEvent( 'OnAfterSetHTML', function(){
editorInstance.ResetIsDirty(); // clean flag to avoid having to save
} ) ;
editorInstance.ResetIsDirty(); //clean flag upon initial load as well
}

这被放置在带有延迟设置的脚本标记

关于javascript - SetHTML 之后立即在 FCKeditor 上 ResetIsDirty -- Javascript 的并发/计时问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3972765/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com