我最近升级到TinyMCE上的新版本(4.6.1,不再是最新版本)。我的网站有几个区域受到影响,曾经触发过“你想离开这个网站吗?”编辑TinyMCE框时发出警告,但未提交其所在的表格。现在没有触发警告。
我尝试了很多解决方案(自动保存插件,autosave_ask_before_unload init属性,抛出更改事件),但是最接近我修复此问题会使警告触发,无论是否已编辑TinyMCE区域。有很多关于如何为3.x添加或删除此功能的信息,但对于4.x更少。
如果您尝试离开页面而不提交表单,并且在任何其他情况下都没有触发警告,我需要更改TinyMCE字段以发出警告触发器。
答案 0 :(得分:2)
如果编辑器是脏的,这是一个返回true / false值的函数。编辑被认为是“肮脏的”#34;如果用户对内容进行了修改。
代码:
if (tinyMCE.activeEditor.isDirty())
alert("You must save your contents.");
这里有SO answer建议使用onchange
,但有一个open bug with onchange
(it doesn't always fire)。
TinyMCE docs for the onchange callback"强烈推荐" IsDirty
优先考虑,并解释原因:
我们强烈建议用户使用isDirty方法来确定 如果编辑内容被更改或不更改,因为这是更多 确切,因为它不需要撤消级别/模糊等
重要的是要注意onchange回调不会触发 每次击键都是出于性能考虑。执行 onchange回调一直只是一个糟糕的设计实践而且它 浪费用户CPU。以前检查isDirty状态会更好 将页面保留在文档onbeforeunload事件中。这是怎么回事 自动保存插件功能。 isDirty方法是推荐的方法 跟踪编辑器实例是否已被修改。
答案 1 :(得分:0)
有关更多信息。 Best way to detect when a user leaves a web page?
FromIterator::from_iter(self)