我想在我使用jquery fancybox显示的textarea上使用tinyMCE。我尝试过使用tinyMCE jQuery插件,tinyMCE的默认下载版本和tinyMCE的完整下载版本。我第一次打开窗体(窗体通过fancybox显示),一切按预期工作; 如果我取消操作并尝试再次打开窗体,textarea被禁用,但tinyMCE控件仍然显示,只有它们不起作用。TinyMCE和fancybox交互错误
这是我使用的表单的代码。
<div id="add-task" class="form-container">
<form method="POST" action="/task-add">
<input type="hidden" name="project" id="add-task-id" value=""/></span>
<div class="element">
<span class="label">Short description</span>
<span class="field"><textarea name="sh_description" rows="5" cols="15"></textarea></span>
</div>
<div class="element">
<span class="label">Task description</span>
<span class="field"><textarea name="description" rows="5" cols="15" id="htmlarea"></textarea></span>
</div>
</form>
</div>
这是TinyMCE的初始化:
tinyMCE.init({
// General options
theme : "simple",
mode : "none",
// Example content CSS (should be your site CSS)
content_css : "/static/css/tinymce.css",
// Drop lists for link/image/media/template dialogs
template_external_list_url : "/static/js/tinymce/lists/template_list.js",
external_link_list_url : "/static/js/tinymce/lists/link_list.js",
external_image_list_url : "/static/js/tinymce/lists/image_list.js",
media_external_list_url : "/static/js/tinymce/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'}
]
});
和用于的fancybox起始的代码:
function mceAdd(){
tinyMCE.execCommand("mceAddControl", false, "htmlarea");
}
function mceEnd(){
tinyMCE.execCommand("mceRemoveControl", false, "htmlarea");
}
$(".taskAdd").fancybox({
'titlePosition' : 'inside',
'transitionIn' : 'none',
'transitionOut' : 'none',
'onComplete' : mceAdd,
'onClosed' : mceEnd
});
所有的JavaScript被一个$(document).ready()
内运行它通过的fancybox所示声明。
我已经读了很多关于stackoverflow的问题,我还没有找到适合我的解决方案。在当前状态下,当调用mceEnd()
函数时,我会得到一个“Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIDOMHTMLDocument.implementation]
”。
我在Opera以及Firefox中出现错误。如果任何人有什么想法我做错了,他们将不胜感激。
更新:
试图Thariama的功能,结果如下: 如果我不知道我是否从的fancybox使用任何(打开并关闭它)我得到一个“Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIDOMHTMLDocument.implementation]
”的错误,但试图改变区域(比如,选择大胆的功能,然后关闭该对话框的fancybox)我得到一个“j is null
”错误使用
版本:3.4.7 TinyMCE的,jQuery的1.3.4的fancybox和jQuery 1.7.1
我得到和以前一样的错误。 (组件返回失败代码:0x8000ffff(NS_ERROR_UNEXPECTED)[nsIDOMHTMLDocument.implementation])尝试做一个console.log来检查id,并且它返回正确的一个(htmlarea) – Raz 2011-12-15 16:20:58