Jeg har, synes jeg selv, en lidt spøjs fejl her...
Funktionen fungerer efter planen i Firefox, men det går galt i IE...
Meningen er, der skal genereres en hel del lag, som er nestet inde i hinanden, og via. z-index, skal de positioneres ovenpå hinanden.
Jeg kan genskabe konstruktionen ved at skrive html'en direkte ind og styre den i min css - og det skøre er ligeledes, det fungerer fint i Firefox, men i IE bliver kun oBoxContent placeret og vist, men oBoxShadow bliver ikke konstrueret - eller det gør den, men dens childs bliver ikke vist.
Kan IE ikke håndtere objekters objekter i DOM/JS ?
Min funktion (i uddrag):
function showShadowBox(iWidth, iLeft, iTop, sText){ var oBody = document.getElementsByTagName("BODY")[0];
if (oBody) { var oBoxShadow = document.createElement("DIV"); var oBoxContent = document.createElement("DIV");
// add properties, child elements and text to oBoxContent //oBoxContent.setAttribute("id",sBoxId); oBoxContent.setAttribute("id", "boxContent"); oBoxContent.style.left = iLeft + "px"; oBoxContent.style.top = iTop + "px"; oBoxContent.style.width = iWidth + "px"; oBoxContent.innerHTML = "<div class='content'>" + sText + "</div>";
// add element to oBoxContainer oBody.appendChild(oBoxContent);
// get height of box iHeightOfContentBox = oBoxContent.clientHeight;
Hvorfor bruge DOM? Du bruger alligevel innerHTML - så kan du ligeså godt skrive en hel streng med dine divs ind i body'en. Det bliver det ikke dårligere af ;o)
<script type="text/JavaScript"> var iNegativeMarginDropShadow = 10; var iSizeOfDropShadow = 2; var iWidthOfShadowCorner = 5; var iHeightOfShadowCorner = 5; function showShadowBox(iWidth, iLeft, iTop, sText){ var oBody = document.getElementsByTagName("BODY")[0];
if (oBody) { var oBoxShadow = document.createElement("DIV"); var oBoxContent = document.createElement("DIV");
// add properties, child elements and text to oBoxContent //oBoxContent.setAttribute("id",sBoxId); oBoxContent.setAttribute("id", "boxContent"); oBoxContent.style.left = iLeft + "px"; oBoxContent.style.top = iTop + "px"; oBoxContent.style.width = iWidth + "px"; oBoxContent.innerHTML = "<div class='content'>" + sText + "</div>";
// add element to oBoxContainer oBody.appendChild(oBoxContent);
// get height of box iHeightOfContentBox = oBoxContent.clientHeight;
Oooops ... alert(d.body.innerHTML) skal naturligvis være alert(document.body.innerHTML) - jeg har bare en 'var d=document' liggende i min default HTML-skabelon ;o)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.