tinyMCE,根据打开它的链接更改内容

时间:2011-08-18 06:41:25

标签: javascript jquery html tinymce

我有两个链接打开嵌入在fancybox中的tinyMCE。

现在我想根据用户点击的链接更改内部内容,我想在tinyMCE中显示的内容是我点击的链接。

我试图设置$('。editor')。html($(this).html())并且它第一次工作,显示正确的内容。

但这是我的问题,内容变得“卡住”,当我关闭我的fancybox并点击其他链接时,第一个内容仍然存在。

无论如何我可以重置tinyMCE吗?我已经尝试设置$('editor')。text('')并删除内容但是当我点击按钮时它不会回来。

它可能与tinyMCE产生的iframe有关,但我无法让它工作......

这是我目前的代码......

HTML                               “/>          

<!--File2-->
<div class="title">
   <a href="#mce" class="edit"><h2>Titel</h2></a>
</div>

<div class="content">
   <a href="#mce" class="edit">
      <p>
         Lorem ipsum dolor sit amet, consectetur adipiscing elit.
         Ut aliquam diam eget elit tristique sit amet fringilla velit sagittis.
         Nam aliquet, nisl eget elementum consectetur, felis arcu feugiat felis, vel fermentum mi ipsum vitae neque.
         Suspendisse placerat leo dolor, ut mollis elit. Nullam bibendum posuere risus tempus viverra.
         Aliquam in erat dui. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
         Aenean auctor lacinia erat, ut facilisis lorem scelerisque eu.
         Duis vitae ullamcorper felis. Pellentesque blandit tortor quis magna placerat eget iaculis velit commodo.
         Nam imperdiet auctor scelerisque. Proin fermentum sem in nulla ornare euismod.
         Maecenas faucibus facilisis cursus. Proin tincidunt luctus egestas.
         Curabitur vestibulum aliquet viverra.
      </p>
   </a>
</div> 




javascript 

$('.editor').html('');
  var content = $(this).html();
    $('.editor').html(content);
  $(this).fancybox(
     {
        'size' : 'auto',
        'onComplete': function()
        {
           $('.editor').tinymce(
           {
              script_url : '/media/tiny_mce/tiny_mce.js',
              theme : 'advanced',
              height: 450,
              plugins : 'ecmsimage,pagebreak,style,layer,table,save,advhr,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,advlist',
                  theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,formatselect,fontselect,fontsizeselect",
                  theme_advanced_buttons2 : "bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,cleanup,help,|,insertdate,inserttime,|,forecolor,backcolor",
                  theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,|,sub,sup,|,charmap,iespell,advhr,|,code,preview,fullscreen",
                   theme_advanced_toolbar_location : "top",
                  theme_advanced_toolbar_align : "left",
                  theme_advanced_statusbar_location : "bottom",
                  theme_advanced_resizing : true,
                  theme_advanced_resize_horizontal: false
               });

               $('#fancybox-inner').width(550).height(500);
               $('#fancybox-wrap').width(550).height(500);
               $.fancybox.center();               
            }
         }); 

1 个答案:

答案 0 :(得分:0)

你需要在关闭fancybox之前正确关闭tinymce,以便能够再次打开tinymce编辑器。用它来正确关闭它

tinymce.EditorManager.execCommand('mceRemoveControl',true, editor_id);

editid等于你的初始化你的html元素的id。