Avatar billede plato Juniormester
16. januar 2007 - 11:30 Der er 14 kommentarer og
1 løsning

Gør koden Mozilla brugbar

Hejsa NG

Jeg har fundet nogle forskellige koder her på Eks. Jeg bruger følgende JavaScript kode til at indsætte FED, KURSIV, osv. når man har markeret noget tekst i <textarea>.

Problemet er at det ikke virker i Firefox/Mozilla.
Kan det lade sig gøre at tilføje noget i koden så det virker?

<script>
function formatText(strTagName) {
    formular.indhold.focus();
    var caretPos = document.selection.createRange();
    if (caretPos.text != '') caretPos.text = '[' + strTagName + ']' + caretPos.text + '[/' + strTagName + ']';
    else alert('Du skal lige markere noget tekst først');
}
</script>
Avatar billede mclemens Nybegynder
16. januar 2007 - 12:30 #1
Avatar billede plato Juniormester
16. januar 2007 - 13:00 #2
Nu har jeg overhovedet ikke forstand på javascript. Hvordan skal jeg flette dit svar sammen med ovenstående?
Avatar billede mclemens Nybegynder
16. januar 2007 - 13:17 #3
Hvad med:


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script type="text/javascript">

function formatText(strTagName){

  mytxtarea=document.formular.indhold;

  if(document.selection){

    caretPos=document.selection.createRange();
    if(caretPos.text!="")caretPos.text="["+strTagName+"]"+caretPos.text+"[/"+strTagName+"]";
    else alert("Du skal lige markere noget tekst først");

  }else if((mytxtarea.selectionEnd-mytxtarea.selectionStart)>0){

    mytxts=mytxtarea.selectionStart;
    mytxte=mytxtarea.selectionEnd;
    mycurtxtl=mytxtarea.textLength;
    myvalue=mytxtarea.value;
    mytxtarea.value=mytxtarea.value.substr(0,mytxts)+"["+strTagName+"]"+mytxtarea.value.substr(mytxts,mytxte-mytxts)+"[/"+strTagName+"]"+mytxtarea.value.substr(mytxte,mycurtxtl);
    mytxtarea.focus();

  }

}

</script>

</head>

<body>


<form name="formular">
<textarea rows="5" name="indhold" cols="20"></textarea>
<input type="button" onclick="formatText('b');" value="Fed skrift">
<input type="button" onclick="formatText('i');" value="Kursiv skrift">
<input type="button" onclick="formatText('u');" value="Understreget skrift">
</form>

</body></html>
Avatar billede mclemens Nybegynder
16. januar 2007 - 13:20 #4
Glemte lige en alert i FF'eren ...


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script type="text/javascript">

function formatText(strTagName){

  mytxtarea=document.formular.indhold;

  if(document.selection){

    caretPos=document.selection.createRange();
    if(caretPos.text!="")caretPos.text="["+strTagName+"]"+caretPos.text+"[/"+strTagName+"]";
    else alert("Du skal lige markere noget tekst først");

  }else{

    mytxts=mytxtarea.selectionStart;
    mytxte=mytxtarea.selectionEnd;


    if(mytxts!=mytxte){
      mycurtxtl=mytxtarea.textLength;
      myvalue=mytxtarea.value;
      mytxtarea.value=mytxtarea.value.substr(0,mytxts)+"["+strTagName+"]"+mytxtarea.value.substr(mytxts,mytxte-mytxts)+"[/"+strTagName+"]"+mytxtarea.value.substr(mytxte,mycurtxtl);
      mytxtarea.focus();
    }else alert("Du skal lige markere noget tekst først");

  }

}

</script>

</head>

<body>


<form name="formular">
<textarea rows="5" name="indhold" cols="20"></textarea>
<input type="button" onclick="formatText('b');" value="Fed skrift">
<input type="button" onclick="formatText('i');" value="Kursiv skrift">
<input type="button" onclick="formatText('u');" value="Understreget skrift">
</form>

</body></html>
Avatar billede plato Juniormester
16. januar 2007 - 13:33 #5
Tak det virker. :) Smider du lige et svar?
Avatar billede mclemens Nybegynder
16. januar 2007 - 13:35 #6
Kommer her :o)
Avatar billede mclemens Nybegynder
16. januar 2007 - 15:18 #7
Og tak for point :)
Avatar billede plato Juniormester
16. januar 2007 - 15:48 #8
Hmm det virker ikke helt når man får denne:
}else alert("Du skal lige markere noget tekst først");

Når man har trykket "OK" poster den formfeltet/opdaterer siden. Det skal den helst ikke. For hvis man allerede har skrevet noget i feltet, og ikke er færdig, skulle man helst kunne forsætte uden den går videre.
Avatar billede mclemens Nybegynder
16. januar 2007 - 17:31 #9
Jeg kan ikke få den til at gøre sådan ved min test ?

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script type="text/javascript">

function formatText(strTagName){

  mytxtarea=document.formular.indhold;

  if(document.selection){

    caretPos=document.selection.createRange();
    if(caretPos.text!="")caretPos.text="["+strTagName+"]"+caretPos.text+"[/"+strTagName+"]";
    else alert("Du skal lige markere noget tekst først");

  }else{

    mytxts=mytxtarea.selectionStart;
    mytxte=mytxtarea.selectionEnd;


    if(mytxts!=mytxte){
      mycurtxtl=mytxtarea.textLength;
      myvalue=mytxtarea.value;
      mytxtarea.value=mytxtarea.value.substr(0,mytxts)+"["+strTagName+"]"+mytxtarea.value.substr(mytxts,mytxte-mytxts)+"[/"+strTagName+"]"+mytxtarea.value.substr(mytxte,mycurtxtl);
      mytxtarea.focus();
    }else alert("Du skal lige markere noget tekst først");

  }

}

</script>

</head>

<body>


<form name="formular" action="2.html" method="get">
<textarea rows="5" name="indhold" cols="20"></textarea>
<input type="button" onclick="formatText('b');" value="Fed skrift" name="noget">
<input type="button" onclick="formatText('i');" value="Kursiv skrift" name="noget">
<input type="button" onclick="formatText('u');" value="Understreget skrift" name="noget">
<input type="submit" value="afsend">
</form>

</body></html>



... du kan evt. prøve med en return false; som i dette eksempel:


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script type="text/javascript">

function formatText(strTagName){

  mytxtarea=document.formular.indhold;

  if(document.selection){

    caretPos=document.selection.createRange();
    if(caretPos.text!="")caretPos.text="["+strTagName+"]"+caretPos.text+"[/"+strTagName+"]";
    else{alert("Du skal lige markere noget tekst først");}

  }else{

    mytxts=mytxtarea.selectionStart;
    mytxte=mytxtarea.selectionEnd;


    if(mytxts!=mytxte){
      mycurtxtl=mytxtarea.textLength;
      myvalue=mytxtarea.value;
      mytxtarea.value=mytxtarea.value.substr(0,mytxts)+"["+strTagName+"]"+mytxtarea.value.substr(mytxts,mytxte-mytxts)+"[/"+strTagName+"]"+mytxtarea.value.substr(mytxte,mycurtxtl);
      mytxtarea.focus();
    }else{alert("Du skal lige markere noget tekst først");}

  }

  return false;

}

</script>

</head>

<body>


<form name="formular" action="2.html" method="get">
<textarea rows="5" name="indhold" cols="20"></textarea>
<input type="button" onclick="formatText('b');" value="Fed skrift" name="noget">
<input type="button" onclick="formatText('i');" value="Kursiv skrift" name="noget">
<input type="button" onclick="formatText('u');" value="Understreget skrift" name="noget">
<input type="submit" value="afsend">
</form>

</body></html>



... Hvilken browser bruger du ?
Avatar billede plato Juniormester
16. januar 2007 - 21:06 #10
I.E 6 og Firefox 5.0
Avatar billede plato Juniormester
16. januar 2007 - 21:09 #11
Kan det være min form?

<form method="post" action="anmeld.asp?mode=read&id=<%=Request.Querystring("id")%>" name="formular">
<input type="image" src="grafik/fedknap.gif" onclick="formatText('b')">
<input type="image" src="grafik/kursivknap.gif" onclick="formatText('i')">
<input type="image" src="grafik/understregknap.gif" onclick="formatText('u')">
<input type="image" src="grafik/linkknap.gif" onclick="formatText('link')">
<input type="hidden" value="&nbsp;" name="emne">
<input type="hidden" value="&nbsp;" name="forumid">
<input type="hidden" value="&nbsp;" name="forumtopic">
<input type="hidden" value="<%=Request.Querystring("id")%>" name="replyid">
<input type="hidden" name="forfatter" value="<%=session("user")%>">
<input type="hidden" name="citat" value="<%if session("citat") <> "" Then Response.Write(""& Session("citat")&"") Else Response.Write(" ") End if%>">
<input type="hidden" name="avatar" value="<%if session("avatar") <> "" Then Response.Write(""& Session("avatar")&"") Else Response.Write("_blank") End if%>">
<input type="hidden" value="<% response.write Now %>" name="dato"><br>
<textarea class="formscomment" name="indhold"></textarea><br>
<input type="image" src="grafik/sendknap2.gif" value="Send" name="submit">
</form>

Jeg har en "anbefal" siden form. Den prøver også at sende når man får "alert" boksen og trykker ok?
Avatar billede plato Juniormester
16. januar 2007 - 21:11 #12
Hmm den loader faktisk siden selv når scriptet bruges. Altså når man markerer en tekst og trykker på evt. "Fed".
Avatar billede mclemens Nybegynder
16. januar 2007 - 21:16 #13
Det er vist image der driller prøv med:
onclick="return formatText('b')"
onclick="return formatText('i')"
onclick="return formatText('u')"
onclick="return formatText('link')"

samt scriptet med return false; til sidst
(den sidste af dem i 16/01-2007 17:31:32)
Avatar billede plato Juniormester
16. januar 2007 - 21:22 #14
Så virkede det. Tusind tak for hjælpen.! :)
Avatar billede mclemens Nybegynder
16. januar 2007 - 21:38 #15
Super, velbekomme :)
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