Avatar billede dotnewbi Juniormester
10. juli 2009 - 14:15 Der er 6 kommentarer og
1 løsning

IE7 DOM problem

Hej,

Er der nogle der ved hvor da jeg kan få IE7 til at fatte disse to funktioner!! :

function EndMove(loc,after){

MoveHtml = document.getElementById(MoveCopyPart).innerHTML;

var AfterCheck = "target_" + MoveCopyPart;

if(after!= AfterCheck){
document.getElementById(MoveParent).removeChild(document.getElementById(MoveCopyPart));
document.getElementById(MoveParent).removeChild(document.getElementById("target_"+MoveCopyPart));

var NDiv=document.createElement('div');
NDiv.innerHTML = MoveHtml;
NDiv.setAttribute('id',MoveCopyPart);
NDiv.onmouseover='java script:SetEditMenu(this.id,this.parentNode.id)';
NDiv.setAttribute('onmouseover',"java script:SetEditMenu(this.id,this.parentNode.id)");
NDiv.setAttribute('class','test');
document.getElementById(loc).insertBefore(NDiv,document.getElementById(after));

var TDiv=document.createElement('div');
TDiv.innerHTML = "";
TDiv.setAttribute('id',"target_" + MoveCopyPart);
TDiv.setAttribute('style',"display:block;");
TDiv.setAttribute('onclick',"java script:EndMove(this.parentNode.id,this.id)");
TDiv.setAttribute('class','target');
document.getElementById(loc).insertBefore(TDiv,document.getElementById(MoveCopyPart));
}


}

function SetEditMenu(ObjId,Parent) {
//alert(Parent);
var Obj = document.getElementById(ObjId);
    var curleft = curtop = 0;

if (Obj.offsetParent) {

do {
            curleft += Obj.offsetLeft;
            curtop += Obj.offsetTop;

} while (Obj = Obj.offsetParent);


var d = document.getElementById(ObjId);
document.getElementById('floateditmenu').style.height = d.offsetHeight + "px";
document.getElementById('floateditmenu').style.width = d.offsetWidth + "px";
document.getElementById('floateditmenu').style.left = d.offsetLeft;
document.getElementById('floateditmenu').style.top = d.offsetTop;
document.getElementById('floateditmenu').style.visibility = "visible";
//document.getElementById('floateditmenu').style.top = curtop + "px";
//document.getElementById('floateditmenu').style.left = curleft + "px";
document.getElementById('floateditmenu').innerHTML = "<div id=\"floateditmenubox\"><div class=\"floatLeft\"><a href=\"java script:ShowMove('infofollow',15,0,false,false,'"+ Parent +"','" + ObjId +"')\" >move</a></div><div class=\"floatLeft\"><a href=\"java script:RemoveItem('"+ Parent +"','" + ObjId +"')\" >remove</a></div></div>";

}

}
Avatar billede majbom Novice
10. juli 2009 - 14:21 #1
hvad er fejlen?!
Avatar billede dotnewbi Juniormester
10. juli 2009 - 14:25 #2
1. onclick,onmouseover og class bliver ikke sat for de nye div'er
2. IE7 kan ikke finde offsetHeight og offsetWidth
Avatar billede dotnewbi Juniormester
10. juli 2009 - 14:26 #3
Der er ingen problemmer i IE8, FF 3.x, safari eller chrome
Avatar billede majbom Novice
10. juli 2009 - 14:43 #4
1. der er noget med events når de skal oprettes på den måde (finder lige noget) - mht class, så prøv med className

2. fisk...
Avatar billede majbom Novice
10. juli 2009 - 14:57 #5
prøv at brug:

function addEvent(elm, evt, func){
  if(elm.addEventListener){
      elm.addEventListener(evt, func, true);
  }else if(elm.attachEvent){
      elm.attachEvent("on"+evt, func);
  }else{
      elm["on"+evt] = func;
  }
}

til at smide events på...

elm: elementet der skal have tilføjet en event
evt: click, mouseover, dblclick osv.
func: den funktion der skal køres ved eventen
Avatar billede dotnewbi Juniormester
31. juli 2009 - 11:10 #6
smid et svar
Avatar billede majbom Novice
31. juli 2009 - 19:06 #7
fik du det til at virke?
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester