Destroy and intialize ckeditor on browser history back
When a page with ckeditor is restored from browser cache by using browser history back feature application was trying to re-initialize it but this was throwing some javascript errors that left ckeditor useless. The ckeditor user interface seemed to be loaded correctly but editor contents was not shown and ckeditor locked. This solution is about destroying all ckeditor instances on page before leaving it and force the reinitialization after Turbolinks restored the cache. Inspiration here [1]. There is a similar patch to make it work with Turbolinks 5.x versions [2]. [1] https://github.com/galetahub/ckeditor/issues/575#issuecomment-132757961 [2] https://github.com/galetahub/ckeditor/issues/575#issuecomment-241185136
This commit is contained in:
@@ -1,6 +1,11 @@
|
||||
(function() {
|
||||
"use strict";
|
||||
App.HTMLEditor = {
|
||||
destroy: function() {
|
||||
for (var name in CKEDITOR.instances) {
|
||||
CKEDITOR.instances[name].destroy();
|
||||
}
|
||||
},
|
||||
initialize: function() {
|
||||
$("textarea.html-area").each(function() {
|
||||
if ($(this).hasClass("admin")) {
|
||||
@@ -11,4 +16,7 @@
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
$(document).on("page:before-unload", App.HTMLEditor.destroy);
|
||||
$(document).on("page:restore", App.HTMLEditor.initialize);
|
||||
}).call(this);
|
||||
|
||||
Reference in New Issue
Block a user