Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Ajax重新打开页面后,TinyMCE列表框和菜单保持打开状态_Javascript_Jquery_Ajax_Jsp_Tinymce - Fatal编程技术网

Javascript 使用Ajax重新打开页面后,TinyMCE列表框和菜单保持打开状态

Javascript 使用Ajax重新打开页面后,TinyMCE列表框和菜单保持打开状态,javascript,jquery,ajax,jsp,tinymce,Javascript,Jquery,Ajax,Jsp,Tinymce,我有我的Web应用程序,在其中我在一个颜色框弹出窗口中打开一些弹出页面http://jacklmoore.com/colorbox/ 在其中一个弹出窗口中,我必须加载一个带有TinyMCE安装的页面,我已经设法做到了这一点。 我遇到的问题是,当我用编辑器关闭弹出窗口并重新打开它进行编辑时,下拉菜单和菜单保持打开状态,正如您在屏幕截图中看到的那样 屏幕截图已删除,请参见下面的屏幕广播 我使用的是tiny_mce.js,每次加载页面时,都会执行此函数: function initScriptEdit

我有我的Web应用程序,在其中我在一个颜色框弹出窗口中打开一些弹出页面http://jacklmoore.com/colorbox/

在其中一个弹出窗口中,我必须加载一个带有TinyMCE安装的页面,我已经设法做到了这一点。 我遇到的问题是,当我用编辑器关闭弹出窗口并重新打开它进行编辑时,下拉菜单和菜单保持打开状态,正如您在屏幕截图中看到的那样

屏幕截图已删除,请参见下面的屏幕广播

我使用的是tiny_mce.js,每次加载页面时,都会执行此函数:

function initScriptEditor()
{

    jQuery1_6_2.getJSON("/DeliDete/listTemplateVariables",

            function(result)
            {

                // Creates a new plugin class and a custom listbox
                tinymce
                      .create(
                            'tinymce.plugins.ExamplePlugin',
                            {
                                createControl : function(n, cm)
                                {

                                    switch(n)
                                    {
                                        case 'variablesMenu':
                                                                                                var total = parseInt(result.size, 10);
                                                var variables = new Array();
                                                for( var i = 0, j = 0; j < total; i += 5, j++)
                                                {
                                                    variables[i] = result.values[j].level;
                                                    variables[i + 1] = result.values[j].group;
                                                    variables[i + 2] = result.values[j].displayed_name;
                                                    variables[i + 3] = result.values[j].name;
                                                    variables[i + 4] = result.values[j].query;
                                                }

                                                var c = cm
                                                      .createMenuButton(
                                                            'variablesListBox',
                                                            {
                                                               title : 'Variabili',
                                                               image : 'javascripts/tiny_mce/template.gif',
                                                               icons : false
                                                            });

                                                c.onRenderMenu
                                                      .add(function(c, m)
                                                      {
                                                          var subMenuArray = new Array();
                                                          var subSubMenuArray = new Array();
                                                          var levels = new Array();
                                                            var groups;
                                                            var template_variables;
                                                            for( var levels_i = 0, levels_j = 0; levels_i < variables.length; levels_i += 5, levels_j++)
                                                            {
                                                                if(!isInArray(levels,variables[levels_i]))
                                                                {
                                                                    groups = new Array();
                                                                    levels[levels_j] = variables[levels_i];
                                                                    // aggiungo menu
                                                                            // livello
                                                                    subMenuArray[levels_j] = m.addMenu(
                                                                {
                                                                    title : levels[levels_j]
                                                                });
                                                                    // aggiungo tutti i
                                                                            // gruppi per quel
                                                                            // livello
                                                                    for( var groups_i = 1, groups_j = 0; groups_i < variables.length + 1; groups_i+=5, groups_j++)
                                                                    {
                                                                        if(variables[groups_i - 1] == levels[levels_j] && !isInArray(groups,variables[groups_i]))
                                                                        {
                                                                            template_variables = new Array();
                                                                            groups[groups_j] = variables[groups_i];
                                                                            // aggiungo menu
                                                                                    // gruppo
                                                                            subSubMenuArray[groups_j] = subMenuArray[levels_j].addMenu(
                                                                          {
                                                                              title : groups[groups_j]
                                                                          });
                                                                            // aggiungo tutte
                                                                                    // le variabili
                                                                                    // per quel
                                                                                    // gruppo
                                                                            for( var variables_i = 2, variables_j = 0; variables_i < variables.length + 2; variables_i+=5, variables_j++)
                                                                            {
                                                                                if(variables[variables_i - 2] == levels[levels_j] && variables[variables_i - 1] == groups[groups_j] && !isInArray(template_variables,variables[variables_i]))
                                                                                {
                                                                                    template_variables[variables_j] = variables[variables_i];
                                                                                    // //aggiungo
                                                                                            // menu
                                                                                            // item
                                                                                            // variabile
                                                                                    subSubMenuArray[groups_j].add(
                                                                                {
                                                                                   title : variables[variables_i],
                                                                                   onclick : function()
                                                                                   {
                                                                                       tinyMCE.activeEditor.execCommand('mceInsertContent',false,variables[findValue(variables,this.title)]);
                                                                                   }
                                                                                });
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                      });

                                                return c;

                                     }

                                    return null;
                                }
                            });

                // Register plugin with a short name
                tinymce.PluginManager.add('templatevariables',
                      tinymce.plugins.ExamplePlugin);

                tinyMCE
                      .init(
                      {
                         language : "it",
                         mode : "exact",
                         elements : "editor_editorText",
                         theme : "advanced",
                         skin : "o2k7",
                         plugins : "-templatevariables,searchreplace,pagebreak,advhr,insertdatetime,preview,print,table,template,paste,autoresize,advlist,contextmenu,inlinepopups,nonbreaking",
                         theme_advanced_buttons1 : "newdocument,|,cut,copy,paste,pastetext,pasteword,selectall,|,search,replace,|undo,redo,|,bullist,numlist,|,bold,italic,underline,|,justifyleft,justifycenter,justifyright,fontselect,fontsizeselect,formatselect",
                         theme_advanced_buttons2 : "outdent,indent,|,image,|,preview,|,forecolor,backcolor,|,insertdate,inserttime,|,advhr,removeformat,|,sub,sup,|,charmap,print,|,template,variablesMenu",
                         theme_advanced_buttons3 : "tablecontrols,table,row_props,cell_props,delete_col,delete_row,col_after,col_before,row_after,row_before,split_cells,merge_cells,|,nonbreaking,pagebreak",
                         theme_advanced_toolbar_location : "top",
                         theme_advanced_toolbar_align : "left",
                         // theme_advanced_resizing : true,
                         paste_block_drop : true,
                         dialog_type : "modal",
                         plugin_insertdate_dateFormat : "%d-%m-%Y",
                         nonbreaking_force_tab : true,
                         pagebreak_separator : "page-break-after: always;"
                      });

                fillTextBoxFromProposte();
            });
}
问题是每次我打开颜色框弹出窗口时它都会重新加载吗?诚恳地说,我不这么认为,但由于我是这个世界上的新手,我不能肯定。。 是否有一个功能可以收集所有可以打开和关闭的菜单项

编辑:我添加了一个屏幕,这样你就可以看到发生了什么


我通过插入以下内容解决了此错误:

tinymce.geteditorID.remove

在我关闭功能的弹出窗口。
我认为这是由于实例的id重复造成的问题,因为它们从未被销毁,每次我加载页面时都会生成另一个。你能打开一个jsfiddle.net吗?你是什么意思?在我的浏览器中打开它?请解释你的评论。谢谢您可以使用下面的表单打开JSFIDLE。其他人可以关注你的问题,甚至构建一个解决方案。现在我明白了。我不知道jsfiddle.net的用法。我想感谢您的努力,但我认为在JSFIDLE中加载一个工作示例太多了,因为这个Web应用程序是ajax、javascripts、库、JSP和luck的复杂组合:D我相信我把所有相关信息都放在这里了,但它们远不是一个运行的示例……太糟糕了。想到的唯一快速而肮脏的黑客是在页面重新打开后关闭这些框。类似于$document.ready{$'id\u to\u box.hide;}