Avatar billede sux Nybegynder
16. januar 2002 - 16:47 Der er 10 kommentarer og
1 løsning

indsættelse før og efter i markering af tekst i formfelt

Hej,

jeg har en kode som er ved at lave til en \"form-editor\" til brug i fx et nyhedssystem. Problemet er at jeg ikke ved hvordan man via tryk på et cpecifikt link indsætter noget før og noget efter en tekst som man har markeret??

Jeg har indtil nu fundet ud af hvordan man indsætter noget i et formfelt via tryk på link, men mangler altså lige at kunne opdele det sådan at der indsættes noget før markering og noget efter ...

Nogen der kan/ vil hjælpe ??

#########
Kode
#########

<script language=\"javascript\">
function add_HTML(html){
document.beskedform.tekst.value = document.beskedform.tekst.value + html
}
</script>

<form action=\"http://connery.dk/funktioner/forum_funktioner.php\" method=\"post\" name=\"beskedform\" onsubmit=\"return validateFields(this);\">
<textarea name=\"tekst\" cols=\"40\" rows=\"7\">denne tekst skal markeres</textarea>
  <p><span class=\"tekst\">Markér den tekst du vil ændre og tryk på nedenstående:</span></p>
    <a href=\"java script:add_HTML(\'<b>\')\"><b>Fed</b></a>&nbsp;&nbsp;
    <a href=\"java script:add_HTML(\'<i>\')\"><b><i>Kursiv</i></b></a>&nbsp;&nbsp;
    <a href=\"java script:add_HTML(\'<font size>\')\"><b>Størrelse</b></a>&nbsp;&nbsp;
    <a href=\"java script:add_HTML(\'<font size>\')\"><b>Fonttype</b></a>&nbsp;&nbsp;
    <a href=\"java script:add_HTML(\'<align\')\"><b>Placering</b></a>&nbsp;&nbsp;
  <p><span class=\"tekst\">Indsæt billede eller Break:</span></p>
    <a href=\"java script:add_HTML(\'<image>\')\"><b>Billede</b></a>&nbsp;&nbsp;
    <a href=\"java script:add_HTML(\'<image>\')\"><b>Break</b></a>&nbsp;&nbsp;
<br>
</form>
Avatar billede sux Nybegynder
16. januar 2002 - 16:49 #1
Og noget af scriptet er, som det fremgår, inspireret af Connery.
Avatar billede nute Nybegynder
16. januar 2002 - 16:55 #2
fungerer *kun* i IE:

<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">

<html>
<head>
    <title>Untitled</title>
    <script language=\"javascript\">
        function add_HTML(html){
            if (document.selection.createRange().text != \"\" && document.selection.createRange().text.indexOf(\"<b>\") == -1) {
            sT = document.selection.createRange(); 
            sTxt = html + sT.text + html;
            sT.text = sTxt
            } else {
              return false;
            }
            document.beskedform.tekst.value = document.beskedform.tekst.value + html
        }
    </script>
</head>

<body>


<form action=\"http://connery.dk/funktioner/forum_funktioner.php\" method=\"post\" name=\"beskedform\" onsubmit=\"return validateFields(this);\">
<textarea name=\"tekst\" cols=\"40\" rows=\"7\">denne tekst skal markeres</textarea>
  <p><span class=\"tekst\">Markér den tekst du vil ændre og tryk på nedenstående:</span></p>
    <a href=\"java script:add_HTML(\'<b>\')\"><b>Fed</b></a>&nbsp;&nbsp;
    <a href=\"java script:add_HTML(\'<i>\')\"><b><i>Kursiv</i></b></a>&nbsp;&nbsp;
    <a href=\"java script:add_HTML(\'<font size>\')\"><b>Størrelse</b></a>&nbsp;&nbsp;
    <a href=\"java script:add_HTML(\'<font size>\')\"><b>Fonttype</b></a>&nbsp;&nbsp;
    <a href=\"java script:add_HTML(\'<align\')\"><b>Placering</b></a>&nbsp;&nbsp;
  <p><span class=\"tekst\">Indsæt billede eller Break:</span></p>
    <a href=\"java script:add_HTML(\'<image>\')\"><b>Billede</b></a>&nbsp;&nbsp;
    <a href=\"java script:add_HTML(\'<image>\')\"><b>Break</b></a>&nbsp;&nbsp;
<br>
</form>
</body>
</html>
Avatar billede nute Nybegynder
16. januar 2002 - 16:56 #3
hov...en liten feil. Funksjonen skal se sådan ut:

        function add_HTML(html){
            if (document.selection.createRange().text != \"\" && document.selection.createRange().text.indexOf(html) == -1) {
            sT = document.selection.createRange(); 
            sTxt = html + sT.text + html;
            sT.text = sTxt
            } else {
              return false;
            }
            document.beskedform.tekst.value = document.beskedform.tekst.value + html
        }

/nute
Avatar billede sux Nybegynder
16. januar 2002 - 16:59 #4
Okay - kan det ikke laves sådan at det er før det markerede er anderledes end det som kommer efter??

Dvs 2 forskellige værdier
Avatar billede sux Nybegynder
16. januar 2002 - 17:02 #5
Så man kan lave fx:

<font size=\"3\"> MARKERET TEKST </font>
Avatar billede nute Nybegynder
16. januar 2002 - 17:04 #6
jo...fx....

<html>
<head>
    <title>Untitled</title>
    <script language=\"javascript\">
        function add_HTML(htmlBefore, htmlAfter){
            if (document.selection.createRange().text != \"\" && document.selection.createRange().text.indexOf(htmlBefore) == -1) {
            sT = document.selection.createRange(); 
            sTxt = htmlBefore + sT.text + htmlAfter;
            sT.text = sTxt
            } else {
              return false;
            }
        }
    </script>
</head>

<body>


<form action=\"http://connery.dk/funktioner/forum_funktioner.php\" method=\"post\" name=\"beskedform\" onsubmit=\"return validateFields(this);\">
<textarea name=\"tekst\" cols=\"40\" rows=\"7\">denne tekst skal markeres</textarea>
  <p><span class=\"tekst\">Markér den tekst du vil ændre og tryk på nedenstående:</span></p>
    <a href=\"java script:add_HTML(\'<b>\',\'</b>\')\"><b>Fed</b></a>&nbsp;&nbsp;
    <a href=\"java script:add_HTML(\'<i>\',\'</i>\')\"><b><i>Kursiv</i></b></a>&nbsp;&nbsp;
    <a href=\"java script:add_HTML(\'<font size>\',\'</font>\')\"><b>Størrelse</b></a>&nbsp;&nbsp;
    <a href=\"java script:add_HTML(\'<font size>\',\'</font>\')\"><b>Fonttype</b></a>&nbsp;&nbsp;
    <a href=\"java script:add_HTML(\'<align\')\"><b>Placering</b></a>&nbsp;&nbsp;
  <p><span class=\"tekst\">Indsæt billede eller Break:</span></p>
    <a href=\"java script:add_HTML(\'<img>\',\'\')\"><b>Billede</b></a>&nbsp;&nbsp;
    <a href=\"java script:add_HTML(\'<br>\',\'\')\"><b>Break</b></a>&nbsp;&nbsp;
<br>
</form>
</body>
</html>


/nute
Avatar billede sux Nybegynder
16. januar 2002 - 17:07 #7
Det er helt perfekt - du er lidt rå til Java!!!

Men kan man lave det sådan, at man ikke behøves at markere noget tekst??

Det ville jo være nyttigt ved BILLEDE og BREAK funktionen ...
Avatar billede sux Nybegynder
16. januar 2002 - 17:23 #8
Af en eller anden grund kan man ikke bestemme fx størrelsen som her:

<a href=\"java script:add_HTML(\'<font size=\'3\'><b>\',\'</b></font>\')\"><b>Overskrift (fed + størrelse 3)</b></a>

Det virker heller ikke at udskifte \'3\' med \"3\" ...

Hvordan klarer jeg den nute??
Avatar billede sux Nybegynder
16. januar 2002 - 17:27 #9
Hmmm - det lader til, at jeg mistede min sidste livlinje... æv

Det er eller lige det sidste - så er det jo et komplet editor script!!
Avatar billede sux Nybegynder
16. januar 2002 - 17:28 #10
Jeg kan godt forhøje til 100 points ...
Avatar billede sux Nybegynder
16. januar 2002 - 17:39 #11
Okay - nå ikke :-)

Tak for hjælpen
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