idos Skrevet 25. september 2007 Del Skrevet 25. september 2007 (endret) Jeg har et script som fungerer halveis i ie og Opera mens det fungerer 100% i Firefox.. første del: har et bilde med disse eventhandlers onmouseover , ondblclick og onmouseout. onmouseover henter stortbilde og medlems/ansatt info fra database asynkront. onmouseout fjerner bilde og info setter inn en standard tekst. Når en dobbelklikker på bildet blir onmouseout funksjonen nullet ut. En kan da dobbelklikke på ansattinfoen ( dersom en er seg selv. dvs. at jeg kan gjøre dette med min info, men ikke andres ) og div elementet blir byttet ut til et textarea og en kan redigere teksten sin. med onblur blir data sendt til serveren og modulen blir lastet på nytt. Det er under her det går galt.. For å unngå skummel injisert kode kjører skriptet m.a htmlentities på inndata på serveren. (php) For å tillate linjeskift bruker jeg {ls} inn til database som linjeskift. dette blir gjort om til <br> på serveren det hele fungere greit. dobbeklikker en på teksten vil et javascript endre alle <br> til {ls} slik at det blir lagret i rett format på server (mysql) . I ff blir alle <br> ene byttet ut med {ls} mens i ie og opera blir de byttet ut med <BR> function editInfo(uid){ var node = document.getElementById('userDetails'); var nodeId = node.getAttribute('id'); var nodeTxt = node.innerHTML; node.innerHTML = ""; var textArea = document.createElement('textArea'); textArea.setAttribute('id',nodeId); var newTxt=" " var temp = nodeTxt.split("<br>"); for(var i=0;i<temp.length;i++){ if(i < temp.length-1){ newTxt += temp+"{ls}"; } else{ newTxt += temp; } } textArea.setAttribute('rows','10'); textArea.setAttribute('onblur','saveuserinfo('+uid+',this.value)'); textArea.value = newTxt; node.parentNode.replaceChild(textArea,node); } EDIT Fant ut av <br> feilen.. <br> opptrer som <BR> i ie og opera.. men klarer likevel ikke å kjøre onblur i ie (opera går bra.. men bluren må være langt unna) Endret 25. september 2007 av idos Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå