我正在使用TinyMCE& jQuery并且在将TinyMCE的外部工具栏移动到DOM中的另一个位置时遇到了问题。
为了进一步复杂化,页面上有多个TinyMCE实例。我只想要当前正在编辑的工具栏的工具栏。
以下是一些示例代码:
$(textarea).tinymce({
setup: function(ed) {setupMCEToolbar(ed, componentID, displaySettingsPane)}
,script_url: '/clubs/data/shared/scripts/tiny_mce/tiny_mce.js'
,theme : "advanced"
,plugins : "safari,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 : "external"
,theme_advanced_toolbar_align : "left"
,theme_advanced_statusbar_location : "bottom"
,theme_advanced_resizing : true
});
var setupMCEToolbar = function (mce, componentID, displaySettingsPane)
{
mce.onClick.add(function(ed,e){
displaySettingsPane($('#' + componentID));
$('#' + componentID).fetch('.mceExternalToolbar').eq(0).appendTo('#settingsPaneContent');
});
}
基本上,似乎setupMCEToolbar函数无法跟踪mceExternalToolbar来移动它。
有没有人试图做过这样的事情?
修改 这是一个星期一好......它找不到外部工具栏,因为我使用的是children()而不是fetch()。
还有一个问题: 1)移动速度非常慢2)移动后,TinyMCE会中断。
编辑2 更一点澄清:模态是可拖动的,因此任何纯CSS解决方案都有点尴尬......
答案 0 :(得分:0)
我在移动元素方面没有太大成功,但是在工具栏中删除并重新创建TinyMCE框应该相当简单。
我会做以下事情:
var content = tinyMCE.get('id_of_text_area').getContent();
tinyMCE.execCommand('mceFocus', false, 'id_of_text_area');
tinyMCE.execCommand('mceRemoveControl', false, 'id_of_text_area');
// pop up your new area
popup('new_area');
// Add a new textarea with the content
$('<textarea id="id_of_text_area" />')
.val(content)
.appendTo('#new_area')
// initialize a new editor on this textarea
.tinymce({..});
答案 1 :(得分:0)
当你有textarea id =“opis”时使用:
#opis_external {
top:200px !important;
left:0px !important;
position:fixed !important;
}