【发布时间】:2026-01-18 20:40:02
【问题描述】:
我有一个同时运行多个tinymce 实例的页面,它在加载时冻结浏览器。我需要等待不少于 15 秒才能再次使用浏览器。我已经在 IE9、FF6 和 Chrome 上对此进行了测试,所有这些都在加载时冻结了一段时间。
我怎样才能防止这种冻结发生?我在一页中至少有 10 个带有 tinymce 的 textarea。计算机在 core2duo 上运行,内存为 4GB,没有运行任何其他程序,但这无关紧要,因为它应该可以在低规格的 PC 上运行。
编辑添加 JS 代码以加载 TinyMCE。
<script type="text/javascript">
var myTextbox = "10 name of textarea here";
tinyMCE.init({
// General options
mode : "exact",
elements: myTextbox,
theme : "advanced",
plugins : "paste,ibrowser",
paste_remove_styles: true,
paste_auto_cleanup_on_paste : true,
plugins : "autolink,lists,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,wordcount,advlist,autosave",
// Theme options
theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect",
theme_advanced_buttons2 : "bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,print,|,ltr,rtl,|,fullscreen",
theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak,restoredraft,|,charmap,emotions,iespell,media,advhr,",
theme_advanced_buttons5 : "pastetext,pasteword,selectall,iuploader,upload_status",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
theme_advanced_statusbar_location : "bottom",
theme_advanced_resizing : true,
setup : function(ed) {
//IMAGE UPLOADER BUTTON
ed.addButton('iuploader', {
title : 'Upload Image',
image : '/www/images/admin/post_button_image_upload.gif',
onclick : function() {
load_image_uploader(this.id);
}
}),
ed.addButton('upload_status', {
title : 'Upload Status',
image : '',
onclick : function() {
}
});
},
// Content CSS
content_css : "/www/js/tiny_mce/css/content.css",
// Drop lists for link/image/media/template dialogs
template_external_list_url : "lists/template_list.js",
external_link_list_url : "lists/link_list.js",
external_image_list_url : "lists/image_list.js",
media_external_list_url : "lists/media_list.js",
// Style formats
style_formats : [
{title : 'Bold text', inline : 'b'},
{title : 'Red text', inline : 'span', styles : {color : '#ff0000'}},
{title : 'Red header', block : 'h1', styles : {color : '#ff0000'}},
{title : 'Example 1', inline : 'span', classes : 'example1'},
{title : 'Example 2', inline : 'span', classes : 'example2'},
{title : 'Table styles'},
{title : 'Table row 1', selector : 'tr', classes : 'tablerow1'}
],
// Replace values for the template plugin
template_replace_values : {
username : "Some User",
staffid : "991234"
}
});
【问题讨论】:
-
如何您将 Tinymce 编辑器实例分配给 textarea 元素?请发布您的代码。
-
添加了将tinymce加载到相关页面的JS代码。
-
我怀疑将 10 多个文本区域全部转换为 TinyMCE 会成为问题,因为在每种情况下,都需要创建一个新的 TinyMCE 实例。您是否考虑过只为最终用户想要使用的文本区域打开 TinyMCE(比如使用“编辑”按钮或 onclick 事件),而不是在页面加载时打开所有这些?
-
确保所有 html 元素('myTextbox')都有不同的 id
标签: php javascript ajax mootools tinymce