Проблема с Javascript при микшировании Cutesoft Edit и Colorbox - PullRequest
0 голосов
/ 17 декабря 2009

У меня небольшая проблема с javascript, и именно поэтому я не люблю javascript. На моей странице я использую Colorbox, чтобы открыть div с возможностью добавить новое изображение. Затем я использую Cutesoft Editor в качестве средства выбора изображений, которое открывает окно, в котором пользователь может выбрать изображение. Моя проблема в том, что окно Color Picker открывается за Colorbox, поэтому пользователь не может выбрать изображение, если он не закрывает всплывающее окно. Изображение палитры и кнопки выбора изображения http://gazet.se/TemporaryFiles/preview.png Я читал всю документацию для Cutesoft, которую я могу найти, и единственная команда, которую я могу найти, это editor.FocusDocument (), но она все еще не работает. Я начинаю подозревать, что Colorbox вызывает эту проблему и что Cutesoft не разрешается отображать всплывающее окно поверх Colorbox.

Руководство Cutesoft

Colorbox Guide

Код для отображения всплывающего изображения (выполняется при нажатии кнопки на картинке):

function callInsertImage(clientID) {
    var editor1 = document.getElementById('<%=Editor1.ClientID%>');    
    editor1.FocusDocument();  
    var editdoc = editor1.GetDocument();    
    editor1.ExecCommand('new');
    editor1.ExecCommand('InsertImage');
    editor1.FocusDocument();
    InputURL(clientID);
    editor1.FocusDocument();    
}    

function InputURL(clientID)
{
    var editor1 = document.getElementById('<%=Editor1.ClientID%>');
    var editdoc = editor1.GetDocument();  
    var imgs = editdoc.images;
    if(imgs.length > 0) {
        document.getElementById(clientID).value = imgs[imgs.length - 1].src;
        if (document.getElementById(clientID).value.substr(0, 19) == 'http://www.gazet.se')
            document.getElementById(clientID).value = "~" + document.getElementById(clientID).value.substr(19);
        editor1.ExecCommand('new');
        document.getElementById(clientID).focus();   
    }  
    else {
        setTimeout(function() { InputURL(clientID); }, 500); 
    }  
}

Код для открытия colorbox:

function NewImage() {
    ResetBox();
    this.boxTitle.innerHTML = 'Ny bild';
    this.buttonSave.value = 'Lägg till bilden';        
    $.fn.colorbox({open:true,width:"700px",inline:true,href:"#inline_example1",speed:100});
}

1 Ответ

1 голос
/ 17 декабря 2009

Я думаю, что это связано со свойствами css этих слоев (html-элементов), которые отвечают за порядок слоев посмотрите на него (т.е. Firebug) и найдите z-index. Z-индекс окна выбора, вероятно, ниже, чем z-индекс редактора Cutesoft.

edit: Я только что проверил. Colorbox имеет z-index:9999;, а ImagePicker - z-index: 8888;. Я предлагаю изменить colorbox.css строку 6 на

#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:8000; overflow:hidden;}
...