Sidder for sjov og roder med at lave et <textarea> der automatisk tilpasser sig i størrelse til den indtastede tekst. Er dog rendt ind i et firefox problem, da denne tilsyneladende ikke understøtter "word-wrap: brek-word", eller wrap="hard"... Eneste måde jeg kan finde en løsning på er at indsætte følgende tag <wbr> mellem hvert bogstav.
Spørgsmålet er så hvordan jeg gør dette smart, og på det rigtige sted mens folk skriver? - Nogle gode forslag?
(Har en funktion der fyre på "input", så mangler bare at finde ud af hvordan jeg indsætter dette tag, og hvordan det skal skrives for at det bliver tolket rigtigt i textareaet, og ikke bare står som tekst "<wbr>", samt hvordan jeg indskriver det umiddelbart der hvor cursoren er osv.)
NB. Dette er primært for sjov... Sidder bare og hygger mig og gik så igang med dette :)
Hmm.. Hvis jeg skriver "​" direkte ind i et sted i den tekst der er i mit textarea fra start af virker det fint - Den vælger at bryde linjen der hvis der er brug for det.. men hvis jeg forsøger at tilføje det via Javascript skriver den bare "​" i selv teksten!?
Forsøger følgende:
$("#JQAEtextarea").val($(this).val()+​);
(Ikke at det skal se sådan ud på sigt.. prøver bare at få et eller andet til at virke :D)
- og hvis der er tale om brugerinput, undlader du jo bare at indsætte noget i databasen, der er alt for langt. Den slags bliver jo kun skrevet for at drille, så det kan du roligt dumpe ;o)
Hej Ole. er godt klar over at <wbr> ikke er validt, men Firefox forstår det godt, og det er eneste måde jeg lige kan se jeg kan lave dette på i Firefox, og som sagt leger jeg bare ;)
Hvis du skal lave det på en fornuftig måde, skal du inkludere en hel dansk ordbog og regler for orddeling på dansk. Hvorfor ikke bare gøre som alle andre steder, hvor man skriver tekst: Lad forfatteren stå for orddelingen ;o)
Nu er mit spørgsmål jo temmelig specifikt... Jeg er forsøger udelukkende at hacke CSS3 proportyen "word-break" til Firefox, og dette er en måde jeg tænker det kunne gøres på... (om end jeg godt er klar over at det vil være en frygtelig grim måde). Hvis du kan hjælpe mig videre i forhold til mit oprindelige spørgsmål, eller hvis du har andre konstruktive forslag hører jeg dem meget gerne.. Men at jeg bare skal lade være kan jeg ærlig talt ikke bruge til så meget! ;)
Undkyld - den CSS3 property jeg taler om hedder selvfølgelig "word-wrap", og ikke "word-break" - En bug report/feaure request er i øvrigt sendt til Mozilla.. Spænende at se om det hjælper noget :)
Gecko's Range model har ikke metoder eller properties, der kan give dig info om fysiske forhold vedr. et range. Derfor må du kæmpe dig ud af det med et kontrol-div, hvori du indsætter teksten fra textarea'et - plus et element, hvis placering du finder. Elementets Y-værdi gemmes i en variabel. Hvis elementets Y-værdi er større end sidst, ved vi, sidste linje er for lang - og der må indsættes noget linjebrud. Alt i alt noget af en DOM-øvelse!
Det er ikke helt uden grund, jeg fraråder dig det - og det tror jeg sådan set godt, du kan bruge til noget, selvom du måske endnu ikke ved det =)
At du bare siger at jQuery er invalid slamkode, og at jeg i øvrigt skal lade være, kan jeg ikke bruge til så meget nej! - Først når du fortælle mig hvorfor du vil fraråde mig det bliver det anvendeligt (Og kommentaren ang. jQuery er under alle omstændigheder overflødig).
Som sagt har jeg en funktion, der i Firefox, fyrer på onInput - altså hver gang der bliver tilføjet eller fjernet et tegn i teksten. - Det eenste jeg ønsker at gøre at at indskrive et <wbr> dynamisk hvergang der bliver indskrevet et andet tegn også. Jeg kan bare ikke finde ud af hvordan jeg indskriver det så det virker, og ikke bare står som tekst.. Går ud fra at det skal escapes på en eller anden måde, men kan ikke finde noget om hvordan?
jQuery's mest grundlæggende funktion hedder '$'. Ifølge ECMA 262, som er standarden bl.a. JavaScript bygger på og skal overholde, er $ reserveret til maskingenereret kode og bør derfor ikke anvendes i alm. kode.
jQuery bygger derudover for en stor dels vedkommende på innerHTML, som er yderst uhensigtsmæssig. Jeg har således lige siddet og hjulpet i en anden tråd, hvor spørgeren skød sig selv i foden med et andet kendt JS-library, som også bygger på innerHTML.
Udover at være uhensigtsmæssig har innerHTML aldrig været valid i nogen somhelst standard. Den strider lodret mod hele W3C's model for, hvordan et HTML dokument bør opfattes og bearbejdes - og bliver derfor heller aldrig valid. Sidst - men ikke mindst - giver innerHTML absolut ingen mening under XHTML.
Både <wbr> ​ og ­ er HTML, og det giver ikke mening at skrive HTML i et textarea. Derfor kan du roligt opgive at komme længere ned ad dén sti.
Tro mig: Det er et stort arbejde, du har foran dig, hvis du vil til at skrive den slags editor ... et alm. textarea vil ikke uden videre kunne omdannes til en sådan =)
Som sagt virker det perfekt hvis jeg fra start af, manuelt, indskriver f.eks. ​ mellem hvert bogstav i mit textarea.. Hvorfor kan jeg så ikke indsætte det dynamisk?
Takker for historien ang. jQuery, men du har givet mig den en gang før, hvilket nok også var grunden til at jeg blev lidt små irriteret over at du hev det frem igen, i stedet for at svare på mit egentlige spørgsmål.
Synes godt om
Ny brugerNybegynder
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.