gpt4 book ai didi

javascript - 有更好的方法来执行这个 jQuery setInterval 吗?

转载 作者:行者123 更新时间:2023-11-28 09:03:25 25 4
gpt4 key购买 nike

我想知道这是否是此代码的更好替代,以使其看起来不那么老套:

active_tiny_editor = setInterval(function () {
if(tinyMCE.activeEditor!==null){
my_object.switch_tabs('tmce');
clearInterval(active_tiny_editor);
}
}, 200);

理想情况下,问题是页面重新加载后,Wordpress 可视化编辑器消失了。我需要切换回文本模式,然后再次切换到可视化编辑器才能查看内容..

首次加载后,页面上的某些内容似乎未正确初始化,并且在切换编辑模式时已修复。

如果您有任何想法,请告诉我。谢谢。

更新:

这是代码:

            // select active editor tab
switch(bootstrap_config_object.editor_active_tab)
{
case 0:
bootstrap_object.switch_tabs('html');
break;
case 1:
if(bootstrap_config_object.tmce_editor_status==1){
active_tiny_editor = setInterval(function () {
if(tinyMCE.activeEditor!==null){
bootstrap_object.switch_tabs('tmce');
clearInterval(active_tiny_editor);
}
}, 200);
}else{
bootstrap_object.switch_tabs('html');
}
break;
case 2:
bootstrap_object.switch_tabs('syntax');
myCodeMirror.refresh();
break;
}

然后这是包含切换选项卡逻辑的 bootstrap_object:

switch_tabs: function(do_active) {// switch active tabs   
switch(do_active)
{
case 'html':
jQuery('#content-html').addClass('switch-html');
jQuery('#content-bootstrap').removeClass('switch-bootstrap');
jQuery('#wrap-code-bootstrap, #codemirror-insert-media').addClass('element-hide');
jQuery('#content, #ed_toolbar, .insert-media, #content-resize-handle').removeClass('element-hide');
jQuery('#wp-content-wrap').addClass('html-active').removeClass('syntax-active').removeClass('tmce-active');

jQuery('#content').show();
jQuery('#content_parent, .CodeMirror').hide();

if(bootstrap_config_object.codemirror_status==1){
bootstrap_object.replase_shortcode_add_method('normal');
}
break;
case 'tmce':
active_tiny_editor = setInterval(function () {
if(tinyMCE.activeEditor!==null){
jQuery('#content_parent').show();
clearInterval(active_tiny_editor);
}
}, 200);
jQuery('#content-tmce').addClass('switch-tmce');
jQuery('#content-bootstrap').removeClass('switch-bootstrap');
jQuery('#wrap-code-bootstrap, #content, #ed_toolbar, #codemirror-insert-media').addClass('element-hide');
jQuery('#content_parent, .insert-media, #content-resize-handle').removeClass('element-hide');
jQuery('#wp-content-wrap').addClass('tmce-active').removeClass('syntax-active').removeClass('html-active');

jQuery('#content_parent').show();
jQuery('.CodeMirror, #content').hide();

if(bootstrap_config_object.codemirror_status==1){
bootstrap_object.replase_shortcode_add_method('normal');
}
break;
case 'syntax':
jQuery('#content-bootstrap').addClass('switch-bootstrap');
jQuery('.wp-switch-editor').removeClass('switch-tmce switch-html');
jQuery('#content_parent, #content, #ed_toolbar, .insert-media, #content-resize-handle').addClass('element-hide');
jQuery('#wrap-code-bootstrap, #codemirror-insert-media').removeClass('element-hide');
jQuery('#wp-content-wrap').addClass('syntax-active').removeClass('tmce-active').removeClass('html-active');

jQuery('.CodeMirror').show();
jQuery('#content_parent, #content').hide();

// resize codemirror
wp_settings = bootstrap_object.URLToArray(jQuery.cookie("wp-settings-"+bootstrap_config_object.user_id));
if(wp_settings){
jQuery('.CodeMirror').css('height', parseInt(wp_settings['ed_size'])+30+'px');
}
tinyMCE.execCommand('mceRemoveControl', false, 'content');

if(bootstrap_config_object.codemirror_status==1){
bootstrap_object.replase_shortcode_add_method('syntax');
}
break;
}
// set active tab
jQuery('#editor-active-tab').val(do_active);

功能:

我在 WP 编辑器中有三个编辑选项卡,即 WP 中的传统视觉和文本编辑器。然后我添加一个名为“Syntax”的新选项,它将转换编辑器以使用 Code Mirror 显示 HTML 语法。我需要它们在使用和添加短代码等方面保持一致和稳定。

最佳答案

tinyMCE.activeEditor 当用户点击tinymce编辑器实例时被设置。这里的问题是页面重新加载只会删除 html 节点,但不会删除编辑器本身。在使用相同 id 初始化编辑器之前,您首先需要正确关闭该 tinymce 实例。请参阅此线程:How to destroy tinyMce?

顺便说一句。如果可能的话,最好使用 tinymce.get('your_editor_id') 而不是使用 tinyMCE.activeEditortinymce.get('your_editor_id') 始终设置/可用,以防初始化。

根本不需要 setInterval

关于javascript - 有更好的方法来执行这个 jQuery setInterval 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17401088/

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