修复了一些问题
This commit is contained in:
@@ -71,6 +71,10 @@
|
||||
border: none;
|
||||
}
|
||||
|
||||
.aksrt-submit-editor-wrap textarea.wp-editor-area {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.aksrt-submit-editor-wrap .mce-toolbar-grp {
|
||||
background: var(--surface-1, #fff);
|
||||
border-bottom: 1px solid var(--color-line, #eceff4);
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
if (!this.form) {
|
||||
return;
|
||||
}
|
||||
this.hydrateEditor();
|
||||
this.bindDirty();
|
||||
this.bindAutoHeight();
|
||||
this.bindSubmitButtons();
|
||||
@@ -113,6 +114,59 @@
|
||||
this.loadFeaturedFromDom();
|
||||
},
|
||||
|
||||
hydrateEditor: function () {
|
||||
var snapshot = document.getElementById('aksrt-initial-post-content');
|
||||
var textarea = qs('#post_content') || qs('[name="post_content"]');
|
||||
var initialContent = snapshot ? snapshot.value : textarea ? textarea.value : '';
|
||||
if (!initialContent) {
|
||||
return;
|
||||
}
|
||||
|
||||
var fallbackToTextEditor = function () {
|
||||
if (window.switchEditors && typeof window.switchEditors.go === 'function') {
|
||||
window.switchEditors.go('post_content', 'html');
|
||||
}
|
||||
if (textarea) {
|
||||
textarea.value = initialContent;
|
||||
textarea.style.opacity = '1';
|
||||
textarea.style.display = 'block';
|
||||
}
|
||||
};
|
||||
|
||||
var attempts = 0;
|
||||
var restore = function () {
|
||||
var editor = window.tinymce && window.tinymce.get('post_content');
|
||||
if (!editor) {
|
||||
attempts += 1;
|
||||
if (attempts < 20) {
|
||||
setTimeout(restore, 250);
|
||||
} else {
|
||||
fallbackToTextEditor();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
var hydrate = function () {
|
||||
var current = editor.getContent({ format: 'raw' });
|
||||
if (!current || !current.trim()) {
|
||||
editor.setContent(initialContent);
|
||||
editor.save();
|
||||
}
|
||||
if (!editor.getContent({ format: 'raw' }).trim()) {
|
||||
fallbackToTextEditor();
|
||||
}
|
||||
};
|
||||
|
||||
if (editor.initialized) {
|
||||
hydrate();
|
||||
} else {
|
||||
editor.on('init', hydrate);
|
||||
}
|
||||
};
|
||||
|
||||
restore();
|
||||
},
|
||||
|
||||
bindDirty: function () {
|
||||
var self = this;
|
||||
this.form.addEventListener('input', function () {
|
||||
|
||||
Reference in New Issue
Block a user