使用jiny版本的TinyMCE时,jQuery和TinyMCE的交互方式存在问题,这些版本已被多次报告和解决。据我所知,它涉及TinyMCE对jQuery attr()函数的重新定义。
结果是,当TinyMCE未在页面上使用时,以下内容返回属性值:
var junk = $(this).attr('someAttribute');
当使用TinyMCE时,会返回一个对象。
我正在使用jQuery 1.7.2和TinyMCE 3.5.2来解决这个问题。
还有其他人遇到这个吗?如果是,是否有解决方法?
答案 0 :(得分:3)
TinyMCE jquery的插件会破坏jQuery的attr
方法(jQuery> = 1.7.2。)。这已在TinyMCE 3.5b3中修复。
对于您的推荐,此处有报告的TinyMCE Bug #5136和fix。
答案 1 :(得分:0)
我正在发布这个问题的答案,但如果有人有不同的解决方案,我仍然希望听到它。
基本上,我接受了Thariama的建议,并停止使用tinyMCE的jQuery构建。相反,我做了以下事情:
tinyMCE.init({
mode: "specific_textareas",
editor_selector: "tinymce",
script_url: '@Url.Content("~/Scripts/tinymce/tiny_mce.js")',
theme: "advanced",
plugins: "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",
theme_advanced_buttons1: "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect",
theme_advanced_buttons2: "cut,copy,paste,pastetext,pasteword,|,search,replace,|,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,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
theme_advanced_buttons4: "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak",
theme_advanced_toolbar_location: "top",
theme_advanced_toolbar_align: "left",
theme_advanced_statusbar_location: "bottom",
theme_advanced_resizing: true,
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",
convert_urls: 0, // default 1
content_css: '@Url.Content("~/Content/tinymce.css")'
});
这是基于我在StackOverflow其他地方找到的建议解决方案。
对于其他从jQuery版本的tinyMCE转换的其他人:您需要记住将mode:和editor_selector:参数添加到您之前使用的参数列表中。如果不这样做,您将获得将每个textarea控件转换为tinyMCE编辑器的默认行为。
您还需要在页面标题中包含tinyMCE库。在我的应用程序中,如下所示:
<script src="@Url.Content("~/Scripts/tinymce/tiny_mce.js")" type="text/javascript"></script>
享受!