[Решено] IMCE открывается свернутым в точку

Аватар пользователя baroleg baroleg 11 мая 2012 в 18:48

При нажатии на кнопку imce или "Выбор на сервере" при загрузке изображения открывается новое окно, но его размеры то ли нулевые, то ли просто точка, потому что окно вообще не видно. Если найти это окно и максимизировать, то все нормально отображается.
IMCE версия - 6.x-2.3
CKEditor - 6.x-1.8

Комментарии

Аватар пользователя baroleg baroleg 11 мая 2012 в 18:51

Тоже самое, если вместо imce поставить ckfinder. Т.е. проблема где-то при вызове окна.
Пытался в imce.js прописать явные размеры

//default file send function. sends the file to the new window.
send: function (fid) {
  fid && window.open(imce.getURL(fid), '', 'width='+ 760 +',height='+ 560 +',resizable=1');
},

не помогло

Аватар пользователя emzzy emzzy 11 мая 2012 в 19:51

Случайно не в Хроме пробуете? В других браузерах проблема сохраняется?

Аватар пользователя vitalii.stymkovskyi vitalii.stymkovskyi 11 мая 2012 в 20:35

у меня в хроме такая же проблема, в firefox вроде нормально, но хотелось бы чтобы повсюду работало...
пробовал ковырять код ничего не помогло ((

Аватар пользователя IRONFELIX IRONFELIX 11 мая 2012 в 21:38

Я в хроме с такой проблемой столкнулся. Потом как-то сама пропала. Может после обновления, причин не выяснил.

Аватар пользователя baroleg baroleg 11 мая 2012 в 23:36

Да, проблема только в хроме. Сейчас принудительно проверил обновление, стоит последний 18.0.1025.168.

Аватар пользователя Advin Advin 11 мая 2012 в 23:42

Есть такое в хроме, пропадает после обновления CKeditor (самого редактора).

Аватар пользователя omega-z omega-z 24 июля 2012 в 13:35

Проблема не в версии редактора а в самом Хроме. В 18 версии появился баг с функциями
.moveTo() и .resizeTo() в 19 его вроде исправили но в 20 он появился снова...
Мучался с ней и на 6 и на 7 Друпале.

но "погуглив" я решил проблему...
надо исправить файл ckeditor.js (код обфускачен)
в файде надо найти код функции popup:

e.extend(a.editor.prototype,{popup:function(m,n,o,p)...

и всю функцию заменить на

e.extend(a.editor.prototype,{
        popup:function(m,n,o,p){
                n=n||'80%';o=o||'70%';
                if(typeof n=='string'&&n.length>1&&n.substr(n.length-1,1)=='%')
                n=parseInt(window.screen.width*parseInt(n,10)/100,10);
               
                if(typeof o=='string'&&o.length>1&&o.substr(o.length-1,1)=='%')
                        o=parseInt(window.screen.height*parseInt(o,10)/100,10);
               
                if(n<640)n=640;
               
                if(o<420)o=420;
               
                var q=parseInt((window.screen.height-o)/2,10),r=parseInt((window.screen.width-n)/2,10);
                p=(p||'location=no,menubar=no,toolbar=no,dependent=no,minimizable=no,modal=yes,alwaysRaised=yes,fullscreen=yes,resizable=yes,scrollbars=yes')
                +',width='+n
                +',height='+o
                +',top='+q
                +',left='+r;
               
                var s=window.open('',null,p,true);
                if(!s)return false;
                try{
                        var ua = navigator.userAgent.toLowerCase();
                        var useResize = true;
                        if (ua.indexOf('chrome') > -1){
                                var chromeVersion = ua.replace(/^.*chrome\/([\d]+).*$/i, '$1');
                                if(chromeVersion >= 18){useResize = false;}
                        }
                        if (useResize){
                                s.moveTo( r, q );
                                s.resizeTo( n, o );
                        }
                        s.location.href=m;
                        s.focus();
                }
                catch(u){
                        s=window.open(m,null,p,true);
                }
                return true;
        }
});