2010-03-29 23 views
10

पर ले जाया जा रहा है मेरे पास एक पृष्ठ पर, मुझे थोड़ी देर में DOM पेड़ में TinyMCE संपादकों को स्थानांतरित करने की आवश्यकता है। हालांकि, किसी कारण से, संपादक इसे पसंद नहीं करता है: यह स्वयं को पूरी तरह से साफ़ करता है और अनुपयोगी हो जाता है। जहां तक ​​मैं देख सकता हूं, यह व्यवहार सफारी 4 और फ़ायरफ़ॉक्स 3.6 के बीच संगत है, लेकिन इंटरनेट एक्सप्लोरर 7/8 नहीं है। Here's an exampleTinyMCE संपादक नापसंदों को

यह वास्तव में मुझे इंटरनेट एक्सप्लोरर में काम करने वाली कुछ करने के लिए बंद कर रहा है लेकिन अधिक सराहनीय ब्राउज़रों के साथ नहीं। क्या डॉक्स पेड़ में एक संपादक को स्थानांतरित करने की कोशिश करने के बारे में दस्तावेज़ों में मुझे कुछ याद आया है? क्या कोई कामकाजी है?

+0

क्या यह सभी ईवेंट हैंडलर इसे स्थानांतरित होने पर तत्वों से बंधे रह सकते हैं? – alex

+0

@alex: असंभव। तत्वों पर ईवेंट श्रोताओं को तब भी बनाए रखा जाता है जब वे दस्तावेज़ के लिए रूट न हों। – zneak

+0

हाँ, आप सही हैं। मुझे बस याद आया कि आपने 'आंतरिक HTML' का उपयोग करते समय उन्हें खो दिया था। लेकिन मैंने अभी आपके स्रोत की जांच की है, और आप उचित डीओएम विधियों का उपयोग कर रहे हैं। क्या सीकेडिटर एक ही काम करता है – alex

उत्तर

7

यह एक ब्राउज़र बग/मुद्दा TinyMCE के साथ कोई समस्या नहीं है। दस्तावेज़ों/विंडो अनलोडों के डोम से नोड को हटाने के बाद से कुछ ब्राउज़रों में आईफ्रेम सामग्री को बनाए रखना असंभव है। मेरा सुझाव है कि पहले एडिटर इंस्टेंस को हटा दें और इसे डीओएम में ले जाने के बजाय इसे दोबारा जोड़ दें।

+0

यही वह था जो मैं शुरू में कर रहा था, लेकिन मुझे बचाने के लिए मेरी छवियों को 'document_base_url' में गड़बड़ कर रही थी। वह वास्तव में असंबंधित था और मैंने इसे ठीक कर दिया है ('convert_urls' से 'false' के साथ)। लेकिन ओह ठीक है, यह काम करता है, और आप कुछ प्रतिनिधि के लायक हैं। – zneak

+0

TinyMCE के मुख्य डेवलपर से एक से बेहतर जवाब नहीं मिल सकता है! +1 – alex

8

एक ही मुद्दा था और यहाँ मैं इसे कैसे हल हो गई है ...

मुद्दा बनाएं

मैं jQuery का उपयोग डोम तत्व यह है कि TinyMCE संपादक यह सब खोने के लिए यह कारण बनता है कि होता है स्थानांतरित करने के लिए सामग्री:

$('.form-group:last').after($('.form-group:first')) 

इस बिंदु के बाद, संपादक की आईफ़्रेम सामग्री हटा दी जाती है।

समाधान

var textareaId = 'id_of_textarea'; 
tinyMCE.get(textareaId).remove(); 
tinyMCE.execCommand("mceAddEditor", false, textareaId); 

बार जब संपादक आइफ्रेम वापस जोड़ देगा, लेकिन दिखाई नहीं कर रहे हैं। अगर ऐसी बात है, कंटेनर को सामने लाने:

$textarea = $('#' + textareaId) 
$textarea.closest('.mce-tinymce.mce-container').show() 

ध्यान दें, यह TinyMCE 4.x. उपयोग कर रहा है

+1

धन्यवाद, यह मेरे लिए भी काम करता है। – lucaswxp

+1

स्पष्ट निर्देशों के लिए धन्यवाद! – srvy

संबंधित मुद्दे