我想在我使用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