Avatar billede prasden Nybegynder
20. oktober 2001 - 00:40 Der er 37 kommentarer og
1 løsning

DHTML:CreateTextRange() på et <textarea>

Hvordan opretter jeg et CreateTextRange() på et <textarea>? Det skal bruges til at lave en select() om til bold tekst...
Avatar billede nute Nybegynder
20. oktober 2001 - 00:44 #1
Avatar billede prasden Nybegynder
20. oktober 2001 - 01:31 #2
Virker som en fin løsning, men er der en mulighed for ikke at vise ex. <b> tag\'s i mit textarea?
Kan ikke helt dekode denne sætning: something.document.body.innerText = something.document.body.innerHTML
Avatar billede nute Nybegynder
20. oktober 2001 - 01:35 #3
hva mener du med \"ikke at vise <b> tags\" ?? hvorfor skal d ikke vise <b> tags ?
Avatar billede prasden Nybegynder
20. oktober 2001 - 01:37 #4
Den skal ikke vise <b> tags - den skal vise teksten som fed istedet. Ved godt det ikke betyder en masse for os to om der står <b>, men er temmelig sikker på at nogle vil blive forvirrede.
Så jeg kan jo ligesågodt lave det ordentlig når jeg er igang...
Avatar billede nute Nybegynder
20. oktober 2001 - 01:42 #5
det kan du ikke gjøre i et alminnelig textarea. Så skal du til å kikke litt på microsoft sin DHTML editor.
Avatar billede nute Nybegynder
20. oktober 2001 - 01:44 #6
Avatar billede prasden Nybegynder
20. oktober 2001 - 02:32 #7
ok, men ellers tak for hjælpen
Avatar billede jd Nybegynder
20. oktober 2001 - 02:41 #8
Det kan man nu godt med noget simpelt javascript... grrr... jeg kan selvfølgeligt ikke lige huske hvordan...
Avatar billede prasden Nybegynder
20. oktober 2001 - 02:57 #9
Ville da være rart hvis du kunne komme i tanke om det :)
/prasd
Avatar billede olebole Juniormester
20. oktober 2001 - 04:29 #10
<ole>
jd >> For det første kan du intet af slagsen i JavaScript - kun med MS\' JScript.
Desuden: Det er IE\'s indbyggede version af MS\' DHTML Editing Component, der skal kikkes på. Prøv at søge på det her på Eksperten....der har været dusinvis af spørgsmål om emnet.
Den nute gav linket til er MS\' ActiveX version af componenten. Man kan dog sagtens bruge den indbyggede.

Du vil dog løbe ind i en del andre problemer - f.eks. dobbelte linieskift, så hvis ikke du er stiv i JavaScript/JScript, bør du nok droppe projektet. Der bliver en del kodeoprytning ....dens kode er yderst MS-agtig, hvilket vel aldrig har været en kompliment - uden for Helvede  ;o)
/mvh
</bole>
Avatar billede prasden Nybegynder
20. oktober 2001 - 05:06 #11
Well...det kan vel lade sig gøre hvis jeg bytter mit textfelt ud med en iframe..
Programmaringsmæssigt vil jeg da mene jeg er ok habil til js og asp..
Men nu er vi jo lidt mere ovre i DHTML\'s boldgade med hensyn til CreateTextRange() osv.
Men ved det kan lade sig gøre i ret simpelt DHTML ved hjælp af lidt div\'s og iframes for at targete...
Men alt hjælp er da fortsat velkomment, hvis folk ikke er blevet trætte af min vedholdenhed endnu :)

/prasd
Avatar billede olebole Juniormester
20. oktober 2001 - 05:37 #12
Så ved du sikkert også, at DHTML ikke er noget selvstændigt sprog, men en kombinations teknik bestående af HTML, CSS og JavaScript/JScript - og at \'CreateTextRange()\' er JScript  :)

Jeg forstår dog ikke problemet .....hvorfor er du så forhippet på at lave det i et textarea? Du kan da ligeså godt anvende en iframe eller et div.
/mvh
Avatar billede olebole Juniormester
20. oktober 2001 - 05:38 #13
PS: Din vedholdenhed er inspirerende ....ikke trættende  ;o)
Avatar billede prasden Nybegynder
20. oktober 2001 - 05:48 #14
Hehe
Men ja ved godt DHTML ikke er et sprog som sådan,
men et kombination af flere existerende, og en god potion objekter...
Grunden til jeg gerne vil have den i et textarea er blot at jeg ikke bryder mig så meget om iframes normalt..
Men dette kan vel heller ikke kaldes normalt, når jeg allerede har udelukket alle andre end IE..
Kan dog godt se det ikke gør så meget at ligge et textarea direkte i en iframe, men læste mig bare til at createTextArea kunne benyttes direkte på et textarea..
Forstod dog ikke helt hvordan jeg skulle adressere det..
Måske det er noget du kender til?
Kunne jo oxo fortsætte over icq hvis det ikke er for meget at forlange :)
/prasd
Avatar billede olebole Juniormester
20. oktober 2001 - 05:51 #15
Hmmmmm.....Du kan godt lave et range, men jeg er ikke sikker på, du kan få teksten formateret i et textarea ....har aldrig selv prøvet det. Du kan dog gøre sådan:

<div style=\"width:300px;height:100px;background-color:#ffffff;border:2px inset #ffffff;overflow:auto;\"
    contentEditable=\"true\" onblur=\"document.f.t.value=this.innerHTML;alert(document.f.t.value)\"></div>

<form name=\"f\">
<textarea name=\"t\" style=\"display:none\"></textarea>
</form>

Bare slet alert\'en - den er kun med for, du kan teste, dit area virkelig *har* modtaget din tekst  ;o)
/mvh
Avatar billede olebole Juniormester
20. oktober 2001 - 05:53 #16
Prøv med noget \'Ctrl+B\' og \'Ctrl+I\' i div\'et - men læg mærke til dine \'Return\' bliver til \'<p></p>\' ...ikke <br>  ;o)
Avatar billede prasden Nybegynder
20. oktober 2001 - 06:03 #17
Hmmm, jeg kan se det virker, men forstår ikke helt hvorfor...
Bliver min textare lavet inde i <div>?
Og hvordan er det helt præcist denne sætning virker:
onblur=\'document.f.t.value=this.innerHTML;alert(document.f.t.value)\'
Avatar billede prasden Nybegynder
20. oktober 2001 - 06:05 #18
Får forresten ikke nogen alert() selvom jeg ikke har fjernet den..
Avatar billede olebole Juniormester
20. oktober 2001 - 06:22 #19
Jeg har gemt dit textarea med \'style=\"display:none\"\'. Du skriver i et div, forklædt som textarea ....altsammen gjort med styles.
\'contentEditable\' er sat til \'true\', hvilket gør dit div til et område af dokumentet, IE 5+\'s indbyggede DHTML Editor kan genkende, som et område, der kan skrives og editeres i. Det skal blot have \'layout\' - hvilket i MS-terminologi betyder, dit div har fået sat en visuel property på style-objektet ....f.eks: \'width\'.

Dette:
  onblur=\'document.f.t.value=this.innerHTML;alert(document.f.t.value)\'
...sørger for, dit textarea får tilføjet div\'ets indhold som value - når du fjerner fokus fra div\'et. Der står i ord:
\"Når vi blur\'er (fjerner fokus fra) div\'et, tager vi indholdet af div\'et (this.innerHTML) og tildeler det textarea, der hedder \'t\' - og som ligger i formen, der hedder \'f\' - dette indhold som \'value\'\"

Nu kan du submitte formen - som kan indeholde andre input felter. I modtager dokumentet vil der så være en variabel med navnet \'t\' (i PHP ville den f.eks. kunne skrives med: <? print $t; ?>), der vil indeholde den formaterede streng fra div\'et.

Nu skal jeg jo ikke sidde og lave en hel teksteditor til dig, men jeg kan da anvise dig, hvordan du skifter <p>\'erne - så må du hente resten af dokumentationen hos MS. Det er \'execCommand()\' med dens idetifiers, du specielt skal lægge mærke til. Den skal så fyres af på et range .....men tilbage til <p> og <br>:

<script language=\"JavaScript\">
function p2br() {
        selRang = document.selection.createRange();
        selRang.pasteHTML(\'<BR>\');
}
</script>

<div onkeydown=\"if(event.keyCode == 13){p2br();return false;}\" style=\"width:300px;height:100px;background-color:#ffffff;border:2px inset #ffffff;overflow:auto;\"
    contentEditable=\"true\" onblur=\"document.f.t.value=this.innerHTML;alert(document.f.t.value)\"></div>

<form name=\"f\">
<textarea name=\"t\" style=\"display:none\"></textarea>
</form>

/mvh
Avatar billede olebole Juniormester
20. oktober 2001 - 06:24 #20
Hvilken browser tester du i? Du bør helt klart få en alert i IE5+ - under Windows.
Avatar billede olebole Juniormester
20. oktober 2001 - 06:26 #21
Skrev jeg forresten ikke: \" \'CreateTextRange()\' er JScript \" ...? Vrøvl...! Det er JavaScript!  :)
Avatar billede olebole Juniormester
20. oktober 2001 - 06:34 #22
Ups.....ret lige funktionen til:


function p2br() {
        selRang = document.selection.createRange();
        selRang.pasteHTML(\'<BR>\');
        selRang.select();
}

...sorry  ;o)
Avatar billede prasden Nybegynder
20. oktober 2001 - 06:35 #23
Du skal have mange tak for hjælpen, men liiige et sidste spørgsmål:
Hvordan submitter jeg til asp?
Du siger indholdet ligger i en variabel, men den kan så ikke postes med normal \'submit\' og requestes med reques.form?

På forhånd mange tak, skal nok kigge nettet igennem :)

/prasd
Avatar billede prasden Nybegynder
20. oktober 2001 - 06:41 #24
Og...jeg tester på IE 6.0, men får desværre ikke nogen alert, men får til gengæld en Debug besked om at document.f.t ikke er defineret..

/prasd
Avatar billede olebole Juniormester
20. oktober 2001 - 06:42 #25
<form name=\"f\" action=\"din_side.sap\" method=\"get\">
  <textarea name=\"t\" style=\"display:none\"></textarea>
  <input type=\"submit\" value=\"Smid poesien videre\">
</form>

Når du sender med method=\"get\", vil du kunne se strengen sat som value på \'t\' i adresselinien, når \'din_side.asp\' loades i browseren.
Prøv lige at teste med dit textarea vist ....altså \'display:block\' - for det lyder mærkeligt, at du ikke får den alert ....!?!?!
Avatar billede prasden Nybegynder
20. oktober 2001 - 06:43 #26
Den kopierer den desværre ikke over i mit area :(
Avatar billede olebole Juniormester
20. oktober 2001 - 06:44 #27
Jamen, det skal zq da slet ikke vaære et textarea .....Dooooohhhhhhh ....!!!!  :oP

<input type=\"hidden\" name=\"t\">

..... sorry....!!!!  =o)
Avatar billede prasden Nybegynder
20. oktober 2001 - 06:47 #28
Får stadig ikke nogle beskeder, og kan desværre ikke få fat i indholdet via form...
Avatar billede prasden Nybegynder
20. oktober 2001 - 06:50 #29
Må hellere smutte i seng nu, men mange tak for hjælpen, og du kan skrive til min mail hvis du gider, ellers checker jeg lige tilbage på denne tråd...

Tak igen!

/prasd :p
Avatar billede olebole Juniormester
20. oktober 2001 - 06:53 #30
Hvad er det dog for en lam browser de nu har konstrueret...?!?!?! Det er zq da lige efter standarden  :(
Jeg har ikke IE6 inde på denne maskine  - dette \'geniale\' OS kan jo ikke håndtere mere ned én version pr. partition  :oP

Jeg mail\'er dig og så skriver jeg her, hvor vi endte  ;o)
/mvh
Avatar billede olebole Juniormester
20. oktober 2001 - 07:01 #31
ehhhhhh ......næ - du mail\'er mig  :)
Klik på mit brugernavn - der finder du min mail-adresse. Jeg kender ikke din  ;o)
/mvh
Avatar billede prasden Nybegynder
22. oktober 2001 - 00:40 #32
Hej igen OleBole

Har lige skrevet en mail til dig, så hvis jeg ikke forstyrrer noget ville det være pænt cool hvis du lige gad checke den :)

/prasd
Avatar billede olebole Juniormester
22. oktober 2001 - 01:47 #33
Okay ....det viste sig at være en mindre fejl i testen. Koden, vi fik til at virke, ser sådan ud:

<html>
<head>
<script language=\"JavaScript\">
function p2br() {
        selRang = document.selection.createRange();
        selRang.pasteHTML(\'<BR>\');
        selRang.select();
}
function moveDaShit(whichText) {
    document.f.t.value = whichText;
    alert(document.f.t.value); // Denne alert er kun til test og skal slettes
}
</script>
</head>
<body>

<div onkeydown=\"if(event.keyCode == 13){p2br();return false;}\" style=\"width:300px;height:100px;background-color:#ffffff;border:2px inset #ffffff;overflow:auto;\"
    contentEditable=\"true\" onblur=\"moveDaShit(this.innerHTML);\"></div>

<form name=\"f\">
<input type=\"hidden\" name=\"t\">
</form>

</body>
</html>

/mvh
Avatar billede prasden Nybegynder
22. oktober 2001 - 01:53 #34
Jeg elsker den \"vi\" sætning :)
Avatar billede olebole Juniormester
22. oktober 2001 - 01:59 #35
nå ja ........jeg peger - du retter = \"vi\"  ;o))
/mvh
Avatar billede gider_ikke_mere Nybegynder
08. december 2006 - 09:15 #36
olebole: Jeg ved ikke om du stadig lytter her, men contentEditablevirker ikke i FF. Hvad gør man så?
Avatar billede olebole Juniormester
08. december 2006 - 09:44 #37
Hehe ... hold.da.op ... kunne du ikke finde noget ældre?  ;D

Prøv at kikke på:
    http://www.mozilla.org/editor/

Her er dokumentationen for Gecko's RichText editor (Midas)  ;o)
Avatar billede gider_ikke_mere Nybegynder
08. december 2006 - 15:52 #38
Jeg er en halvgammel hund, olebole (ved fra tidligere at du er ældre, he, he), så jeg holder mig til gamle ting ;o)
Det burde efter andres mening kunne lade sig gøre med en iframe.

Jeg checker linket.
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