jQuery和TinyMCE 3.5.2:attr()无法正常工作

时间:2012-06-13 02:33:50

标签: jquery tinymce

使用jiny版本的TinyMCE时,jQuery和TinyMCE的交互方式存在问题,这些版本已被多次报告和解决。据我所知,它涉及TinyMCE对jQuery attr()函数的重新定义。

结果是,当TinyMCE未在页面上使用时,以下内容返回属性值:

var junk = $(this).attr('someAttribute');

当使用TinyMCE时,会返回一个对象。

我正在使用jQuery 1.7.2和TinyMCE 3.5.2来解决这个问题。

还有其他人遇到这个吗?如果是,是否有解决方法?

2 个答案:

答案 0 :(得分:3)

TinyMCE jquery的插件会破坏jQuery的attr方法(jQuery> = 1.7.2。)。这已在TinyMCE 3.5b3中修复。

对于您的推荐,此处有报告的TinyMCE Bug #5136fix

答案 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>

享受!