22. marts 2006 - 09:42Der er
5 kommentarer og 1 løsning
Hmm...DOM node problem
Jeg har arbejdet med omskrivning af en wysiwyg editor og det fungerer sådan set fint, men... Har en eventhandler der kalder nedenstående funktion når der klikkes et eller andet sted i dokumentet:
function SetActiveElementByEvent(evt){ if (isIE) { strElement = evt.srcElement; } else { strElement = evt.target; } doConfigUpdates(); } Her sættes strElement så til det element brugeren har klikket inde i - og det fungerer også fint til de fleste formål. Kan redigere i strElement vha. attributter osv, men... hvis jeg nu forsøger nedenstående i IE:
function RemoveElement() { var newElement = document.createElement("SPAN"); newElement.innerHTML = strElement.innerHTML; strElement.parentNode.replaceChild(newElement, strElement); }
Så får jeg fejlen: Invalid argument
Det virker som om IE ikke helt opfatter strElement som en node, hvordan kan det være? Og hvordan får jeg rettet det?
Well... fandt en løsning der virkede... function RemoveElement() { var newElement = document.createElement("SPAN"); var count = strElement.childNodes.length; for (i=0; i < count; i++) { strElement.parentNode.insertBefore(strElement.firstChild, strElement); } }
hov... function RemoveElement() { var count = strElement.childNodes.length; for (i=0; i < count; i++) { strElement.parentNode.insertBefore(strElement.firstChild, strElement); } }
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.