gpt4 book ai didi

javascript - 即使在提交更改时,CKEditor 总是在保存之前退出时发出警报

转载 作者:行者123 更新时间:2023-11-30 05:39:24 26 4
gpt4 key购买 nike

我正在使用 checkdirty 函数在退出前检查我的 ckeditor 是否有任何更改。它工作正常,但即使我提交更改也会出现警报。我将更改什么代码以及从何处获取此提交按钮以跳过检查并仅保存更改?

这是我的代码。

for ( var name in CKEDITOR.instances ) {
if(submit_it)
return false;

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

var submit_it = false;

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

这是我的 javascript 代码。

var warn_on_leave = false; 

CKEDITOR.on('currentInstance', function() {
try {
CKEDITOR.currentInstance.on('key', function() {
warn_on_leave = true;
});
} catch (err) { }
});

$(document.activeElement).submit(function() {
warn_on_leave = false;
});

$(window).bind('beforeunload', function() {
if(warn_on_leave) {
return 'Attention: Your text has not been saved!';
}
});

这是我的提交按钮:

<input type="image" src="button_update.gif" border="0" alt="Update" name="udpate" title=" Update ">

最佳答案

我遇到了类似的问题,在谷歌搜索 2 小时后,我找到了一个解决方案,我所做的是在执行保存命令之前注册一个事件:

var saved = false;

CKEDITOR.replace('#myTextArea', options);

CKEDITOR.plugins.registered['save'] = {
init: function (editor) {
editor.on( 'beforeCommandExec', function(event)
{
if (event.data.name === 'save') {
saved = true;
}
});
}
};

$(window).on('beforeunload', function () {
if (saved === false) {
if (CKEDITOR.currentInstance.checkDirty() === true) {
return 'You have some unsaved changes on this page, are you sure you want to leave?';
}
}
});

虽然这是一个很老的问题,但我想我的回答会对一些人有所帮助。

关于javascript - 即使在提交更改时,CKEditor 总是在保存之前退出时发出警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21631711/

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