Skillnaden mellan outer- och innerHTML är att den första även innefattar elementet som du pekar på. Mozilla har ex. inte (ännu i alla fall) stöd för outerHTML, och vill du därför inte använda det blir det betydligt klurigare, åtminstone om det skall vara någotsånär vattentätt. Då får du kolla obj.parentNode och sedan leta reda på ditt element med ett regexp, därefter försöka leta reda på sluttaggen och beroende på om elementet i fråga har fler children kan det vara lite småklurigt.
Ok, men då går du över ån för att hämta vatten document.selection.createRange().text hanterar bara oformaterad text, och lägger du html där så blir det text. Alltså;
function bliff(){
document.selection.createRange().text = document.selection.createRange().text;
}
Ok, men det är ju meningen att på det stycket där jag markerat upp, ex. som i mitt "huvudinlägg", markerar jag upp "Text" och klickar på knappen, så skall divtaggen försvinna och Text skall stå kvar utan lager. Puhh.
Usch, jag känner mig krånglig.
Jag har ett redigerbart lager (contentEditable) som jag markerar upp aktuell text i, då verkar det inte funka eftersom att "selection.createRange" verkar inte funka med outerHTML.
Struligt värre. Applikationen skall endast funka med IE6 så det skulle annars funka med outerHTML.
Nått i denna stil:
var newText = obj.document.selection.createRange().text;
obj.document.selection.createRange().htmlText= newText
...jo det skulle gått alderles utomordentligt bra, om... det räckte med att markera upp "Text". Nu måste man även markera tomrummen mellan "denna", "Text" och "och" för att få det hela att funka. " Text "
Mysko...
Måste säga att det varit smart om det hade funkat med outerHTML. Då hade man bara kunnat markera upp och ersätta htmlkoden med "createRange().text".
Så mysko är det faktiskt inte. Markerar du "text" i "<div...>text</div>" så blir inte "<div...>" med. Men jag förstår att det är frustrerande Hade du fått med det vid markeringen hade det inte varit något problem. En approach att få bort en visuell egenskap, om ex. div "ett" hade varit röd, vore att kolla på execCommand(), men då tappar du kontrollen på html-koden, och det antar jag att du inte vill heller. När jag micklade med en editor förrut så gjorde jag så man hade tillgång till både wysiwyg-läge (contenteditable) och html-läge (i en textarea). Annars är det en rätt klurig manöver.
Men men... det skall inte vara lätt
267 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91