使用checkDirty()处理多个CKEditors,以便在离开页面之前提醒用户内容是否已更改

时间:2013-05-30 17:58:28

标签: javascript ckeditor

我有这个代码,适用于一个CKEditor textarea字段。它会在离开页面之前提醒用户他们的内容已被更改。但是有些页面有多个CKEditor,我想知道如何使用这个JavaScript代码来确认它们。

function beforeUnload( e )
{
    if ( CKEDITOR.instances.description.checkDirty() ) 
        return e.returnValue = "You will lose the changes made in the editor."; 

}

if ( window.addEventListener )
    window.addEventListener( "beforeunload", beforeUnload, false );
else
    window.attachEvent( "onbeforeunload", beforeUnload );

描述是textarea的名称,但有些还有其他textarea名称,如products_short_description[1]products_description[1]。我需要找到一种方法将所有CKEditor名称集成到此代码中,因此如果有人对2或3个编辑器中的某个进行了更改,则会相应地向其发出警报。

1 个答案:

答案 0 :(得分:4)

只需迭代所有这样的实例:

function beforeUnload( evt ) {
    for ( var name in CKEDITOR.instances ) {
        if ( CKEDITOR.instances[ name ].checkDirty() )
            return evt.returnValue = "You will lose the changes made in the editor."; 
    }
}