Avatar billede holmes2 Nybegynder
06. juli 2007 - 21:43 Der er 4 kommentarer og
1 løsning

Hvor fungerer selection.createRange ikke i Firefox?

Hvor fungerer dette ikke i firefox? Nogen der har et alternativ?
ET lille script til at lave bold, underline, kursiv i textarea

function handle(sInput) {
        selTxt = document.selection.createRange()
        switch (sInput) {
            case "1":
                selTxt.text = '<u>'+ selTxt.text +'</u>';
                break;
            case "2":
                selTxt.text = '<i>'+ selTxt.text +'</i>';
                break;
            case "3":
                selTxt.text = '<b>'+ selTxt.text +'</b>';
                break;
            default:
                break;
        }
    }
Avatar billede mikkelk Nybegynder
06. juli 2007 - 22:29 #1
Ja, det er ikke nogen nem opgave at få tingene til at fungere i alle browsere.

Prøv i firefox med document.getElementById('mitTextarea').getSelection()
Avatar billede mikkelk Nybegynder
06. juli 2007 - 22:30 #2
Fandt lige et lille eksempel:
var myselection = '';

if ( window.getSelection ) {
myselection = window.getSelection();
}
else if ( document.selection ) {
myselection = document.selection.createRange().text;
}
else if ( document.getSelection ) {
myselection = document.getSelection();
}

if ( myselection != '' && myselection != null ) {
// Do stuff
}
Avatar billede mikkelk Nybegynder
06. juli 2007 - 22:31 #3
Du kan evt. læse lidt mere om problemet i denne forum-tråd:
http://support.invisionfree.com/ar/t188816.htm
Avatar billede holmes2 Nybegynder
07. juli 2007 - 16:03 #4
Hej Mikkelk

Fik den til at fungerer med den her, som jeg fandt på det link du gav.
Læg et svar, så får du point. Takker for hjælpen :-)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript">
// globals
var curSelVal = "";
var startPos = 0;
var endPos = 0;

// functions
function storeCurVal(obj, start, end) {
// function not called if IE 4+
  startPos = obj.selectionStart;
endPos = obj.selectionEnd;
curSelVal = document.forms[0].copy.value;
}

function getSel(tag)
{
if(document.selection){
  oldString = document.selection.createRange().text;
if (oldString != "") {
  document.selection.createRange().text = '<' + tag + '>' + oldString + '</' + tag + '>';
}
    return false;
} else if(window.getSelection){
oldString = curSelVal;
newString = '';
finalString = '';
len = curSelVal.length; // length of current string
if (len > 0 && document.forms[0].copy.value.length > 0) {
  // get from beginning of string to start position
  firstPart = oldString.substring(0, startPos);
  // get from end of selection to end of total string
  lastPart = oldString.substring(endPos, len);

  // store the new string
  for (i=startPos; i<endPos; i++) {
  newString += oldString[i];
  }
  // surround it with the proper tag
  finalString = '<' + tag + '>' + newString + '</' + tag + '>';

  // rewrite it back into the textarea
  document.forms[0].copy.value = firstPart + finalString + lastPart;
} else {
  curSelVal = "";
}
} else if(document.getSelection){ // don't know which browser would actually call this
    txt = obj.setSelectionRange(obj.selectionStart, obj.selectionEnd);
}

}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>how to add tags around &lt;textarea&gt; text</title>
</head>

<body>
<form action="" method="post">
<textarea name="copy" id="copy" cols="50" rows="15" onselect="if (!document.selection) storeCurVal(this);"></textarea>

<input type="button" name="selectString" value="add <p>" onclick="getSel('p');" />
</form>
</body>
</html>
Avatar billede mikkelk Nybegynder
07. juli 2007 - 18:08 #5
Det var godt det lykkedes :-)
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