2010-08-17 9 views
6

में पोस्टबैक के बाद TinyMCE को कैसे रखें, जब मैं UpdatePanel पर पोस्टबैक का कारण बनता हूं तो यह बटन क्लिक करता है, यह tinyMCE.triggerSave() पर कॉल करता है।अपडेटपेनल

यह पैनल पुन: लोड और संपादक को फिर से दिखाने के लिए, लेकिन जब मैं tinyMCE.triggerSave() दूसरी बार मैं निम्नलिखित त्रुटि मिलती है कॉल करने के लिए प्रयास करें:

g.win.document is null 

मैं हालांकि यह पुराने उदाहरण हो रही थी, लेकिन मैं मैं सहेजने के बाद भी नियंत्रण को हटा रहा हूं (tinyMCE.execCommand('mceRemoveControl',false,'Editor');)। फिर भी यह दूसरी बार दुर्घटनाग्रस्त हो जाता है।

मुझे इसे कैसे ठीक करना चाहिए?

+1

आप http://stackoverflow.com/questions/699615/cant-post- पर ध्यान दिया है दो बार-से-द-एजेक्स-टिनिमस-टेक्स्टरेरा और http://stackoverflow.com/questions/547327/how-to-make-tinymce-work-inside-an-updatepanel? – Tchami

उत्तर

2

बहुत भ्रम के बाद मुझे पता चला कि @André Gadonski फ़िक्स जो अब TinyMCE संस्करण 4 में काम नहीं करता है। न केवल यह काम नहीं करता है, यह कंसोल को कोई त्रुटि प्रतिक्रिया प्रदान नहीं करता है!

नया आदेश है mceRemoveEditor

स्रोत: http://www.tinymce.com/forum/viewtopic.php?id=31256

मैंने पाया कि यह या तो पहले उसे फिर से initalising TinyMCE या बस एएसपी अद्यतन पैनल के सामने ताजा उपयोग कर रहा है सीधे इस्तेमाल किया जा सकता है;

var prm = Sys.WebForms.PageRequestManager.getInstance(); 
prm.add_beginRequest(BeginRequestHandler); 

function BeginRequestHandler(sender, args) { 
    tinymce.execCommand('mceRemoveEditor', true, 'EditorID'); 
} 
+0

यह! 'tinyMCE.triggerSave() को कॉल करना याद रखें; इसे करने से पहले अन्यथा आप संपादक में दर्ज कुछ भी खो देंगे। – GJKH

+0

मैं इस मुद्दे में 3 घंटे की तरह फंस गया हूं, क्या आपने उपरोक्त कोड '$ (दस्तावेज़) में लिखा है। पहले से ही {{}}) 'फ़ंक्शन? – Kamran

6

tinyMCE.execCommand ('mceRemoveControl', true, 'Editor');

अद्यतन पैनेल छोड़ने से पहले, यह पूरी तरह से हटाने के लिए tinyMCE को मजबूर करेगा और फिर जब आप दोबारा जोड़ देंगे तो यह क्रैश नहीं होगा।

+1

आपको धन्यवाद !! यह मुझे पागल कर रहा है! आपको बहुत - बहुत धन्यवाद! अब 90 मिनट से अधिक समय तक इसे गुगल कर रहे हैं। – Lukas

2

TinyMCE 3.2.x के लिए, IE8 या किसी अन्य ब्राउज़र में tinyMCE उदाहरण दूर करने के लिए निम्नलिखित का उपयोग करें। चूंकि tinymce.execCommand फ़ंक्शन IE8 में इनपुट फ़ील्ड को अपरिहार्य बनाता है।

tinyMCE.remove(editor); //editor is instance of tinymce editor and not editor id 

यह उसी पृष्ठ में अन्य इनपुट फ़ील्ड को अक्षम किए बिना "अनुमति अस्वीकृत" त्रुटि को ठीक करेगा।

2

मुझे एक ही समस्या है। इसे ठीक करने के लिए आप तत्व के लिए मास्ट एड स्क्रिप्ट कोड पोस्ट बैक बनाते हैं। मेरे बटन वापस पोस्ट बनाने, मैं इसे OnClientClick जोड़ने():

<asp:LinkButton ID="lbnSave" OnClick="lbnSave_Click" ToolTip="Add New" OnClientClick="dotim()" 
         runat="server">save</asp:LinkButton> 

और स्क्रिप्ट है:

function dotim() { 
    tinyMCE.triggerSave(); 
    } // this is my attempt at a fix 
संबंधित मुद्दे