Здравствуйте!
Есть такой код. В событии 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>