Javascript-форум (https://javascript.ru/forum/)
-   Opera, Safari и др. (https://javascript.ru/forum/css-html-browser/)
-   -   innerHTML+= не работает в Opera (https://javascript.ru/forum/css-html-browser/14171-innerhtml-%3D-ne-rabotaet-v-opera.html)

Rembrant 04.01.2011 02:55

innerHTML+= не работает в Opera
 
Всех с наступившим. Поставлен в тупик Оперой.
Через JS программно создаю div c содержимым innerHTML, которое может дополняться. Где-то так:
of=document.createElement("div");          
of.style.position="absolute";
of.style.left="13px";
of.style.top="136px";
of.style.width="760px"
of.style.height="682px";
of.style.backgroundImage="url('http://myserv.com/img/view_fon.png')";  
of.id="of";    
document.body.appendChild(of);
of.innerHTML="<font color=\"#007CB0\"  style=\"cursor:default; position:absolute; left:403px; top:10px; width:222px; height:25px; font-size:14pt; font-family:Arial; \" >Информация</font>";
//делает что-то ещё
of.innerHTML+="<textarea style=\"position:absolute; left:7px; top:200px; \" >!!!!!!!</textarea>";
of.innerHTML+="<textarea style=\"position:absolute; left:7px; top:230px; \" >???????</textarea>";

так вот именно в Опере of.innerHTML+= не выполняется (ошибки тоже не возвращает).
Ещё так пробовал
var ih="<font color=\"#007CB0\"  style=\"cursor:default; position:absolute; left:403px; top:10px; width:222px; height:25px; font-size:14pt; font-family:Arial; \" >Информация</font>";
ih+="<textarea style=\"position:absolute; left:7px; top:200px; \" >!!!!!!!</textarea>";
ih+="<textarea style=\"position:absolute; left:7px; top:230px; \" >???????</textarea>";
of.innerHTML=ih;

- отображает так само, только первую часть, ту что в <font>
Или так:
var newDiv = document.createElement('div');
newDiv.innerHTML="<textarea style=\"position:absolute; left:7px; top:200px; \" >!!!!!!!</textarea>";
of.appendChild(newDiv);

но и это не помагает.
В остальных браузерах работает (ё-моё, IE и тот меня понимает!), а тут ни в какую. Совсем запутался...

Vulkan 04.01.2011 09:52

Да вроде всё работает:
<head>
<script>
window.onload=function(){
of=document.createElement("div");          
of.style.position="absolute";
of.style.left="13px";
of.style.top="136px";
of.style.width="760px"
of.style.height="682px";
of.style.backgroundImage="url('http://myserv.com/img/view_fon.png')";  
of.id="of";    
document.body.appendChild(of);
of.innerHTML='<font color="#007CB0"  style="cursor:default; position:absolute; left:403px; top:10px; width:222px; height:25px; font-size:14pt; font-family:Arial;" >Информация</font>';
of.innerHTML+='<textarea style="position:absolute; left:7px; top:200px;" >!!!!!!!</textarea>';
of.innerHTML+='<textarea style="position:absolute; left:7px; top:230px;" >???????</textarea>';
}
</script>
</head>
<body>
</body>

Rembrant 04.01.2011 12:29

да, это работает.
разобрался. в одной из строчек я вставлял ифрейм в div: of.innerHTML+='<iframe...'
если это поставить в самый конец, тогда всё показывает нормально


Часовой пояс GMT +3, время: 10:43.