Показать сообщение отдельно
  #1 (permalink)  
Старый 14.03.2012, 15:24
Новичок на форуме
Отправить личное сообщение для yog-hcgm Посмотреть профиль Найти все сообщения от yog-hcgm
 
Регистрация: 14.03.2012
Сообщений: 2

Элементы добавленные в onload - пропадают
Здравствуйте!
Есть такой код. В событии onload динамически добавляется iframe, а в него img. В Internet Explorer - работает и показывает. В FireFox и Chrome изображение сначала рисуется, затем мгновенно исчезает, будто срабатывает еще одно событие которое перерендеривает DOM.
Если же вызвать не напрямую, а через setTimeout - то работает и в Firefox и Chrome. Не знает ли кто, что происходит?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body onload='LoadImgs();'>
</body>
<script type="text/javascript">
    CreateIframe = function (frameName, frWidth, frHeight, zindex) {        
        var frameObj = document.createElement('iframe');
        frameObj.width = frWidth;
        frameObj.src = 'Content.htm';
        frameObj.height = frHeight;
        frameObj.id = frameName;
        frameObj.name = frameName;
        frameObj.frameBorder = 0;
        frameObj.allowTransparency = 'allowtransparency';
        //frameObj.allowtransparency = 'true';
        frameObj.style.zIndex = zindex;
        frameObj.style.position = 'absolute';
        frameObj.style.scrolling = 'no';
        frameObj.style.left = 0;
        frameObj.style.top = 0;
        AppendChild(window, frameObj);
        return frames[frames.length - 1];
    }
    AppendChild = function (ob, child) {
        if (ob.document.body == null)
            ob.document.appendChild(child);
        else
            ob.document.body.appendChild(child);
    }
    PX = function (ob) {
        return parseInt(ob) + 'px';
    }

    function LoadImgs() {
        var MapFrame = CreateIframe('idMapFrame', 200, 200, 1);      

        //setTimeout(function () {
                            Tmp(MapFrame);
        //               },1000);        
    }

    function Tmp(MapFrame) {
        var img = MapFrame.document.createElement('img');
        img.src = 'imgs/util/redcrest.png';
        img.style.position = 'absolute';
        img.style.left = PX(90);
        img.style.top = PX(90);
        AppendChild(MapFrame, img);
    }
</script>
</html>

Последний раз редактировалось yog-hcgm, 15.03.2012 в 12:40.
Ответить с цитированием