2010-08-17 38 views
6

Khi tôi nhấp vào nút gây ra postback trên UpdatePanel, hãy gọi số tinyMCE.triggerSave().Cách giữ TinyMCE sau khi đăng lại trong UpdatePanel

Nó tải lại bảng điều khiển và trình biên tập hiển thị lên một lần nữa, nhưng khi tôi cố gắng gọi tinyMCE.triggerSave() lần thứ hai tôi nhận được lỗi sau:

g.win.document is null 

tôi mặc dù nó đã nhận được dụ cũ, nhưng tôi m cũng loại bỏ điều khiển (tinyMCE.execCommand('mceRemoveControl',false,'Editor');) sau khi tôi gọi lưu. Mặc dù vậy nó vẫn bị treo lần thứ hai.

Làm cách nào để khắc phục sự cố?

+1

Các bạn đã nhìn http://stackoverflow.com/questions/699615/cant-post- double-from-the-same-a-ajax-tinymce-textarea và http://stackoverflow.com/questions/547327/how-to-make-tinymce-work-inside-an-updatepanel? – Tchami

Trả lời

2

Sau nhiều lần nhầm lẫn, tôi phát hiện ra rằng sửa lỗi @André Gadonski không còn hoạt động trong phiên bản TinyMCE 4. Nó không chỉ hoạt động, nó không cung cấp phản hồi lỗi cho bàn điều khiển!

Lệnh mới là mceRemoveEditor

Nguồn: http://www.tinymce.com/forum/viewtopic.php?id=31256

tôi thấy rằng điều này có thể thể được sử dụng trực tiếp trước khi tái initalising TinyMCE hoặc ngay trước khi bảng điều khiển ASP cập nhật được làm mới sử dụng;

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

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

Điều này! hãy nhớ gọi 'tinyMCE.triggerSave();' trước khi thực hiện điều này nếu không bạn sẽ mất mọi thứ được nhập vào trình soạn thảo. – GJKH

+0

Tôi bị mắc kẹt như 3 giờ vào vấn đề này, bạn đã viết mã trên trong '$ (tài liệu) .ready ({..})' chức năng? – Kamran

6

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

Trước khi rời khỏi UpdatePanel, nó sẽ buộc tinyMCE để loại bỏ hoàn toàn và sau đó khi bạn thêm một lần nữa nó sẽ không sụp đổ.

+1

CẢM ƠN BẠN !! Điều này đã khiến tôi phát điên! Cảm ơn bạn rất nhiều! Đã googling này trong hơn 90 phút ngay bây giờ. – Lukas

2

Đối với tinymce 3.2.x, sử dụng thông tin sau để xóa ví dụ nhỏ trong IE8 hoặc bất kỳ trình duyệt nào khác. Hàm tinymce.execCommand làm cho các trường đầu vào không thể chỉnh sửa trong IE8.

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

Điều này sẽ khắc phục lỗi "Bị từ chối" mà không vô hiệu hóa các trường nhập khác trong cùng một trang.

2

tôi có cùng một vấn đề. Để khắc phục, bạn cột thêm mã tập lệnh cho phần tử tạo bài đăng lại. nút của tôi tạo bài lại, tôi thêm nó OnClientClick():

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

và kịch bản là:

function dotim() { 
    tinyMCE.triggerSave(); 
    } // this is my attempt at a fix 
Các vấn đề liên quan