Показать сообщение отдельно
  #1 (permalink)  
Старый 02.06.2012, 16:51
Профессор
Отправить личное сообщение для demoniqus Посмотреть профиль Найти все сообщения от demoniqus
 
Регистрация: 28.05.2008
Сообщений: 182

проблемы с appendChild в IE6
Помогите понять, где ошибка в коде с точке зрения IE6. Опишу проблему. Данной функцией сначала создается полупрозрачный объект div и методом document.body.appendChild(div) втыкается на страницу. Тут проблем нет - все выполняется. Далее создается div_form под размещение на нем функционала и также втыкается на страницу через document.body.appendChild(div_form). Тоже проблем нет.
далее создается табличка с надписями, объектами. Вот она почему-то упорно не желает методом div_form.appendChild(table) вставляться на страницу, хотя содержимое для отображения точно имеется, о чем свидетельствует вывод сообщения в конце alert (table). В чем может быть проблема?
function create_form(type_form, id_album) {
        div = document.createElement("div");
        div.id = "bg_layer";
        div.style.position = 'absolute';
        div.style.backgroundColor = 'red';
        clientWidth = document.documentElement.clientWidth;
        scrollWidth = document.documentElement.scrollWidth;
        clientHeight = Math.max (document.body.clientHeight, (document.documentElement.clientHeight? document.documentElement.clientHeight : document.body.clientHeight), document.body.scrollHeight);
        scrollHeight = document.documentElement.scrollHeight;
        html = document.documentElement;
        body = document.body;
        scrollTop = html.scrollTop || body && body.scrollTop || 0;
        scrollTop -= html.clientTop;
        div.style.width = Math.max(clientWidth, scrollWidth)  + "px";
        div.style.height = Math.max(clientHeight, scrollHeight) + "px";
        op = 0.3;
        div.style.opacity = op;
        div.style.MozOpacity = op;
        div.style.KhtmlOpacity = op;
        div.style.filter = 'alpha(opacity=' + (op * 100) + ')';
        document.body.appendChild(div);
        div.style.left = "0px";
        div.style.top = "0px";
        div.style.zIndex = 1000;
        div.onclick = function () {
                document.getElementById('div_form').parentNode.removeChild(document.getElementById('div_form'));
                document.getElementById('bg_layer').parentNode.removeChild(document.getElementById('bg_layer'));
            }
        div_form = document.createElement("div");
        div_form.id = "div_form";
        div_form.style.position = 'absolute';
        div_form.style.left = "200px";
        div_form.style.top = (scrollTop + 100) + "px";
        div_form.style.width = Math.abs($(window).width() - 400) + "px";
        div_form.style.height = Math.abs($(window).height() - 200) + "px";
        document.body.appendChild(div_form);
        op = 1;
        div_form.style.zIndex = 1001
        div_form.style.opacity = op;
        div_form.style.MozOpacity = op;
        div_form.style.KhtmlOpacity = op;
        div_form.style.filter = 'alpha(opacity=' + (op * 100) + ')';
        div_form.style.backgroundColor = "#999999";
        div_form.style.overflowX = 'hidden';
        div_form.style.overflowY = "auto"
        div_form.style.scrollbar = 'hidden';
        div_form.style.textAlign = 'center'
        div_form.setAttribute('id_album', id_album);
        window.onscroll = function () {
                if (document.getElementById('div_form')) {
                    html = document.documentElement;
                    body = document.body;
                    scrollTop = html.scrollTop || body && body.scrollTop || 0;
                    scrollTop -= html.clientTop;
                    document.getElementById('div_form').style.top = (scrollTop + 100) + "px";
                }
            }
        table = document.createElement('table');
        switch (type_form) {
            case 'to_rename_album' :
                tr = document.createElement('tr');
                td = document.createElement('td');
                tr.appendChild(td);
                td.style.textAlign = 'center';
                td.innerHTML = 'Переименовать';
                td.id = "caption_rename_album";
                table.appendChild(tr);
                ///////////////////////////////
                tr = document.createElement('tr');
                td = document.createElement('td');
                input = document.createElement('input');
                input.type = 'text';
                input.id = 'new_album_name';
                td.appendChild(input)
                tr.appendChild(td);
                td.style.textAlign = 'center';
                table.appendChild(tr);
                ////////////////////////////////
                input = document.createElement('input');
                input.type = 'button';
                input.id = "caption_rename";
                input.value = '{/literal}{$caption_rename}{literal}';
                input.onclick = function () {rename_album()};
                tr = document.createElement('tr');
                td = document.createElement('td');
                td.appendChild(input);
                tr.appendChild(td);
                td.style.textAlign = 'center';
                table.appendChild(tr);
                table.appendChild(tr);
                break;
            case 'to_add_photo':
                
                
                
                
                break;
            case 'to_remove_album':
                tr = document.createElement('tr');
                td = document.createElement('td');
                td.style.textAlign = 'center';
                div = document.createElement('div');
                div.innerHTML = "Удалить";
                div.id = "caption_if_need_move_photos";
                div.style.width = "30%";
                div.style.height = "150px";
                td.appendChild(div);
                select = document.createElement('select');
                select.id = 'move_photos_to_album';
                select_options = [{/literal}
                    ["<option value=''></option>", 0],
                    {foreach from=$albums item=album}
                    ["<option value='{$album.id_album}' />{$album.album_name}</option>", {$album.id_album}],
                    {/foreach}
                    {literal}];
                select.innerHTML = '';
                i = 0;
                while ((select_options[i] != '') && (select_options[i] != undefined)) {
                    if (document.getElementById('div_form').getAttribute('id_album') != select_options[i][1])
                        select.innerHTML += select_options[i][0];
                    i++;
                    }
                td.appendChild(select);
                td.appendChild(document.createElement('br'));
                a = document.createElement('a');
                a.href='javascript: void(0)';
                a.innerHTML = "Удалить";
                a.id = "caption_remove_album";
                a.onclick = function () {
                    if (confirm({"Удалить?")) {
                        request = "doit=remove_album&id_album=" + document.getElementById('div_form').getAttribute('id_album');
                        //обновлять весь mainTD
                        if (document.getElementById('move_photos_to_album').value != '')
                            request += "&move_to_album=" + document.getElementById('move_photos_to_album').value
                        var req = new Request.HTML({url: 'php/doit.php', 
                                    onSuccess: function (responseTree, responseElements, responseHTML, responseJavaScript) {
                                            document.getElementById('div_form').parentNode.removeChild(document.getElementById('div_form'));
                                            document.getElementById('bg_layer').parentNode.removeChild(document.getElementById('bg_layer'));
                                            if (responseHTML = 'remove_OK') {
                                                my_albums();
                                                }
                                        }
                        });
                        req.send(request);
                        }
                    }
                td.appendChild(a);
                tr.appendChild(td);
                table.appendChild(tr);
                break;
            }
        table.id = "table_id";
        table.align = 'center';
        div_form.appendChild(table);
            alert (table.innerHTML)
        div_form.style.textAlign = 'center';
        }
Ответить с цитированием