Avatar billede novanil Nybegynder
21. november 2008 - 09:58 Der er 3 kommentarer

Alternativ til cloneNode

Jeg har det problem at cloneNode ødelægger undo funktionaliteten i den wysiwyg editor jeg arbejder på, hvorfor jeg er nødt til at finde en alternativ måde at lave en kopi af dom'en på. Er der nogen der har en god løsning?

Jeg vil lave en kopi af mit dokument, hvorpå jeg udfører en række dom-operationer og derefter udskifter det oprindelige dokument med kopien - så editoren behandler operationerne som en samlet operation og man dermed kan undo'e ændringen under et. Mit problem er nu bare, at alle operationer udført før denne ændring tabes i det øjeblik jeg opretter en kopi af dokumentet med cloneNode.
Hvis jeg kopiere dokumentet ved brug af inner/outerHTML er problemet at jeg ikke længere kan benytte dom-operationer - eller kan jeg?
Avatar billede w13 Novice
21. november 2008 - 18:06 #1
Jo, selvom jeg ikke normalt anbefaler innerHTML, så har jeg valgt at "acceptere" den lidt ved WYSIWYG-editorer =) og det skulle ikke ødelægge DOM-operationer, hvis du bare passer lidt på. (Det ødelægger vist nogle DOM-bindings i nogle situationer, men det ved Olebole lidt mere om, end jeg gør - læs evt. hans artikel på www.dengodekode.dk om "innerHTML vs. DOM").

outerHTML derimod virker kun i IE, så den vil jeg aldrig nogensinde anbefale nogensomhelst! :)
Avatar billede w13 Novice
23. august 2009 - 18:15 #2
Fået løst problemet?
Avatar billede w13 Novice
07. maj 2010 - 10:56 #3
Kommet videre? :)
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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