1

我有这段代码,它适用于一个 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 );

Description 是 textarea 的名称,但有些还有其他 textarea 名称,例如products_short_description[1]or products_description[1]。我需要找到一种方法将所有 CKEditor 名称集成到此代码中,因此如果有人对 2 或 3 个编辑器中的一个进行更改,它会相应地提醒他们。

4

1 回答 1

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."; 
    }
}
于 2013-05-30T20:01:51.360 回答