TinyMCE сбой / не работает в IE8 - PullRequest
3 голосов
/ 24 декабря 2010

Я использую jQuery-версию TinyMCE 3.3.9.3

В Firefox он работает нормально (10-секундное видео, изображающее его в использовании): http://www.youtube.com/watch?v=TrAE0igfT3I

В IE8 (в режиме стандартов IE8) я не могу печатать или нажимать какие-либо кнопки. Однако, если я использую ctrl + v для вставки, тогда я могу начать печатать, но кнопки все равно не работают (45-секундное видео, показывающее это в использовании): http://www.youtube.com/watch?v=iBSRlE8D8F4

Демонстрация jQuery TinyMCE на сайте TinyMCE работает для меня в IE8.

Вот код инициализации:

$().ready(function(){

    function tinymce_focus(){
        $('.defaultSkin table.mceLayout').css({'border-color' : '#6478D7'});
        $('.defaultSkin table.mceLayout tr.mceFirst td').css({'border-top-color' : '#6478D7'});
        $('.defaultSkin table.mceLayout tr.mceLast td').css({'border-bottom-color' : '#6478D7'});
    }

    function tinymce_blur(){
        $('.defaultSkin table.mceLayout').css({'border-color' : '#93a6e1'});
        $('.defaultSkin table.mceLayout tr.mceFirst td').css({'border-top-color' : '#93a6e1'});
        $('.defaultSkin table.mceLayout tr.mceLast td').css({'border-bottom-color' : '#93a6e1'});
    }


    $('textarea.tinymce').tinymce({
        script_url : 'JS/tinymce/tiny_mce.js',
        theme : "advanced",
        mode : "exact",
        invalid_elements : "b,i,iframe,font,input,textarea,select,button,form,fieldset,legend,script,noscript,object,embed,table,img,a,h1,h2,h3,h4,h5,h6",

        //theme options 
        theme_advanced_buttons1 : "cut,copy,paste,pastetext,pasteword,selectall,|,undo,redo,|,cleanup,removeformat,|", 
        theme_advanced_buttons2 : "bold,italic,underline,|,bullist,numlist,|,forecolor,backcolor,|", 
        theme_advanced_buttons3 : "", 
        theme_advanced_buttons4 : "", 
        theme_advanced_toolbar_location : "top", 
        theme_advanced_toolbar_align : "left", 
        theme_advanced_statusbar_location : "none", 
        theme_advanced_resizing : false,

        //plugins
        plugins : "inlinepopups,paste",
        dialog_type : "modal",
        paste_auto_cleanup_on_paste : true,

        setup: function(ed){
            ed.onInit.add(function(ed){

                //check for addEventListener -- primarily supported by firefox only
                var edDoc = ed.getDoc();
                if ("addEventListener" in edDoc){
                    edDoc.addEventListener("focus", function(){
                        tinymce_focus();
                    }, false);

                    edDoc.addEventListener("blur", function(){
                        tinymce_blur();
                    }, false);
                }

            });
        }

    });


});

Есть идеи, почему он не работает в IE8?

[править]: удаление всего из инициализации (оставляя только script_url и theme) приводит к тем же симптомам

Ответы [ 4 ]

1 голос
/ 05 сентября 2011

Прошло много времени с тех пор, как я посетил этот код, поэтому я прошел его снова после обновления до tinymce 3.4.4.

Как выяснилось, родительский элемент fieldset имел обе позиции: относительный и z-index: -1. Удаление свойства z-index позволило разрешить правильной работе tinymce.

0 голосов
/ 12 апреля 2011

Проверьте, есть ли у вас # в вашем URL во время инициализации редактора.Странно, но у меня возникло несколько проблем из-за этого.Убедившись, что в URL нет #, удалось решить пару подобных проблем.Надеюсь, у вас все получится.

0 голосов
/ 26 июля 2011

может быть, будет слишком поздно, я встретил ту же проблему.в ie9 и ie7 все в порядке, но в ie8 невозможно набрать или нажать любую кнопку)

и решение было - убрать встроенный стиль в теге noscript (или в самом теге), и tinymce начал работать отлично

0 голосов
/ 03 января 2011

Не будет экземпляра tinymce без добавления элемента управления к определенному HTML-элементу. Кроме того, вы устанавливаете режим с «точного» на «текстовое» или вам придется добавить элемент управления с помощью tinymce.execCommand('mceAddControl',true, element_id);*

...