FANTAzeRus
Guest
Отображение динамически созданного контента
Написал следующий код:
<script>
function InitMenu() {
Menu = new DinMenu('200px','25px','#aaaacc','#505070',[{text:"test1"},{text:"test2"},{text:"test3"},{text:"test4"},{text:"test5"}]);
Menu.buildMenu();
}
function DinMenu(width,height,bgColor,selColor,Items) {
this.width = width;
this.height = height;
this.bgColor = bgColor;
this.selColor = selColor;
this.items = Items;
this.rowsHeight = "17px";
this.buildMenu = function() {
var table = document.createElement("table");
var tr = document.createElement("tr");
table.appendChild(tr);
for(i=0;i<this.items.length;i++){
var td = document.createElement("td");
td.innerHTML = this.items.text;
td.style.backgroundColor = this.bgColor;
td.onmouseover = LiteOn;
td.onmouseout = LiteOff;
tr.appendChild(td);
}
document.getElementById("Dmenu").appendChild(table);
}
LiteOn = function() {
this.style.backgroundColor = selColor;
}
LiteOff = function() {
this.style.backgroundColor = bgColor;
}
}
</script>
<body onLoad="InitMenu()">
<div id="Dmenu"></div>
</body>
На УРА работает в Opera и Mozilla, в IE просто чистый экран, не хочет отображать, и ошибок не выдает, хотя если после генерации поставить elert(document.body.innerHTML); выводит ВЕСЬ сгенерированный текст ... подскажите как лечить???
-~{}~ 22.07.05 11:22:
Все решилось ОЧЕНЬ просто - нужно добавить еще тег TBODY:
...
var table = document.createElement("TABLE");
var tb = document.createElement("TBODY");
table.appendChild(tb);
var tr = document.createElement("TR");
tb.appendChild(tr);
...
Написал следующий код:
<script>
function InitMenu() {
Menu = new DinMenu('200px','25px','#aaaacc','#505070',[{text:"test1"},{text:"test2"},{text:"test3"},{text:"test4"},{text:"test5"}]);
Menu.buildMenu();
}
function DinMenu(width,height,bgColor,selColor,Items) {
this.width = width;
this.height = height;
this.bgColor = bgColor;
this.selColor = selColor;
this.items = Items;
this.rowsHeight = "17px";
this.buildMenu = function() {
var table = document.createElement("table");
var tr = document.createElement("tr");
table.appendChild(tr);
for(i=0;i<this.items.length;i++){
var td = document.createElement("td");
td.innerHTML = this.items.text;
td.style.backgroundColor = this.bgColor;
td.onmouseover = LiteOn;
td.onmouseout = LiteOff;
tr.appendChild(td);
}
document.getElementById("Dmenu").appendChild(table);
}
LiteOn = function() {
this.style.backgroundColor = selColor;
}
LiteOff = function() {
this.style.backgroundColor = bgColor;
}
}
</script>
<body onLoad="InitMenu()">
<div id="Dmenu"></div>
</body>
На УРА работает в Opera и Mozilla, в IE просто чистый экран, не хочет отображать, и ошибок не выдает, хотя если после генерации поставить elert(document.body.innerHTML); выводит ВЕСЬ сгенерированный текст ... подскажите как лечить???
-~{}~ 22.07.05 11:22:
Все решилось ОЧЕНЬ просто - нужно добавить еще тег TBODY:
...
var table = document.createElement("TABLE");
var tb = document.createElement("TBODY");
table.appendChild(tb);
var tr = document.createElement("TR");
tb.appendChild(tr);
...