Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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.
Ответить с цитированием
  #2 (permalink)  
Старый 14.03.2012, 16:17
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

Сообщение от yog-hcgm
MapFrame.document
такого вроде бы нет, у фреймов есть либо contentWindow, либо contentDocument (в зависимости от браузера).
Ответить с цитированием
  #3 (permalink)  
Старый 15.03.2012, 12:40
Новичок на форуме
Отправить личное сообщение для yog-hcgm Посмотреть профиль Найти все сообщения от yog-hcgm
 
Регистрация: 14.03.2012
Сообщений: 2

Сообщение от Раед Посмотреть сообщение
такого вроде бы нет, у фреймов есть либо contentWindow, либо contentDocument (в зависимости от браузера).
Смысл в том, что всё везде работает. Только в Файрфоксе и Хроме имаджи появляются, но спустя полсекунды пропадают. А если их добавлять через setTimeout через секунду, то всё совсем хорошо.

Только хотелось бы понять в чём дело и что за событие иха удаляет из DOM`а
Ответить с цитированием
  #4 (permalink)  
Старый 17.03.2012, 20:11
Интересующийся
Отправить личное сообщение для grego Посмотреть профиль Найти все сообщения от grego
 
Регистрация: 09.01.2012
Сообщений: 26

Добрый день!

Уточню в данной теме, дабы не создавать новые сущности.
Пишу внешнюю валидацию на js, собственно при загрузке документа необходимо поля, в которые установлен фокус, подсвечивать другим цветом - соотв-но при переводе фокуса делать по дефолту.
Задача банальна, но вопрос - если я реализую валидацию в рамках функции, которая вешается на onload страницы, как и что мне в данном случае указывать в условии?
if (document.getElementById("book").onfocus==false)
?
Подскажите, пожалуйста.
Заранее благодарю.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу удалить клонируемые элементы ViktorCore Элементы интерфейса 11 20.12.2011 20:24
Событие на динамически созданные элементы списка Arigato Events/DOM/Window 7 12.12.2011 09:28
onLoad у объекта Image kadabrik Events/DOM/Window 3 17.05.2011 17:15
Как удалить повторные элементы из массива? YISHIMITSY Общие вопросы Javascript 1 04.05.2010 00:04
mouseout: Определить дочерние элементы Papa Общие вопросы Javascript 3 03.02.2010 20:29