10. maj 2006 - 17:18Der er
15 kommentarer og 1 løsning
Tunge funktioner resulterer i cursor-skift (WYSIWYG-editor)
Hej, Som overskriften siger er jeg ved at lave en WYSIWYG-editor. Jeg vil gerne vise det aktive format, altså at knappen [B] er "trykket ned (har andet baggrundsbillede)" hvis cursoren er placeret i et ord der er bold. Altså ligesom word gør.
Håber i forstår?
Til det kører jeg en funktion onclick (hvis man klikker på ordet) og onkeyup (hvis man bevæger sig hen til ordet med piletasterne).
I denne funktion sætter jeg så baggrundsbilledet hvis det format er aktivt.
Problemet opstår så hver gang man klikker på iframet eller trykker på en tast inde i iframet. Cursoren skifter nemlig fra text til default, somom den skal loade en STOR funktion og der altså sker et slags sideload. (der kommer nemlig også et timeglas i et splitsekund).
Det vil jeg gerne undgå da det forvirrer ekstremt meget at cursoren "blinker" hver gang man skriver et bogstav.
Funktionen er ikke spor tung og problemet opstår når jeg prøver at definere følgende: - innerhtml - baggrundsbillede - fontstørrelse - Sikkert mange flere
Nogle der kan definere en permanent cursor på en måde?
På forhånd tak, og skriv hvis jeg skal forklare yderligere
Du kan ikke undgå timeglas-cursor'en. Den kommer frem, når browseren loade en side og det kan du ikke ændre på ... og det er der heller ikke andre, der kan :)
Ja, det er fordi, IE insisterer på at checke på serveren for en ny version af billedet, hvergang du indsætter et baggrundsbillede - eller blot flytter et element, der indholder et baggrundsbillede. Det hjælper ikke at preloade billederne :o|
Undskyld den manglende forklaring :) "Og hvis jeg sætter innnerHTML på en div med baggrundsbillede, så virker det heller ikke." Der mener jeg at cursoren også blinker hvis jeg sætter innerHTML på en div (med baggrundsbillede). Er det fordi at IE forsøger at læse en ny version af baggrundsbilledet selvom man på ingen måde tilgår det?
"Hvis det er umuligt at forhindre, hvordan gør andre WYSIWYG-editorer?" Der mener jeg: Hvis det er umuligt at forhindre at cursoren blinker, hvad gør andre WYSIWYG-editore de bruger jo også aktivt format (i hvert fald de fleste af dem)
Men altså, det jeg overordnet vil opnå er: At vise hvilket format (altså fx bold og italic osv.) der bliver brugt i det ord/sætning hvor cursoren er markeret.
Det gør jeg nu via queryCommandValue() og så de tidligere omtalte events.
Hvis du med 'ved src' mener et almindeligt billed-element, så nej. Her checker IE ikke serveren - med mindre der eksplicit gøres noget for, at det skal ske :)
Jeg fik løst mit problem! Det sted hvor jeg skulle bruge backgroundImage brugte jeg bare backgroundColor istedet, og der hvor jeg havde brug for innerHTML satte jeg 2 divs inde i hinanden. Den yderste har et baggrundsbillede og den inderste ændrer jeg innerHTML på, på den måde holdes baggrundsbilledet ude af funktionen.
Mange tak for hjælpen. Uden hjælpen havde jeg aldrig forstået hvorfor den gjorde som den gjorde, og derfor aldrig løst problemet.
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.