abonnement Unibet Coolblue Bitvavo
  donderdag 9 december 2004 @ 22:19:43 #1
42782 QuietGuy
opscheppende pats-nerd
pi_23865423
Ik ben bezig met een scriptje die de selectie uit een textarea haalt.
In Internet Explorer werkt alles perfect met textarea.createTextRange maar in Firefox werkt dat niet.

Na googlen kwam ik op window.getSelection();. Maar die geeft alle selecties behalve in textarea's. Dan resulteert hij in een lege waarde.

Heeft iemand een mooie oplossing?
  vrijdag 10 december 2004 @ 09:38:11 #2
42782 QuietGuy
opscheppende pats-nerd
pi_23872535
* Schop *

Nou waar blijven die firefox evangelisten? Die browser was toch zo goed?
Offeuh... mist hij hier toch een feature?

Vast niet, laat me zien dat het met Firefox nòg simpeler is als in Internet Explorer. Overtuig me!
pi_23872816
Begrijp ik goed dat je een soort knippen plakken functies aan het bakken bent? En het kan vast wel op een of andere manier ...
Mijn games
He jij daar! ja jij! Doorlopen nu!
  vrijdag 10 december 2004 @ 10:05:04 #5
42782 QuietGuy
opscheppende pats-nerd
pi_23872849
quote:
Die link had ik al gevonden, maar selecteer maar eens een text ín een textarea. Hij returnt een lege string in firefox.
  vrijdag 10 december 2004 @ 10:07:44 #6
42782 QuietGuy
opscheppende pats-nerd
pi_23872886
quote:
Op vrijdag 10 december 2004 10:02 schreef Hakkert het volgende:
Begrijp ik goed dat je een soort knippen plakken functies aan het bakken bent? En het kan vast wel op een of andere manier ...
Wat ik precies wil is het volgende:

Ik heb een textarea, en maak daarin een selectie.
Ik klik op een knopje boven het textarea.
Nu wordt de selectie opgevraagd, er worden wat replaces op los gelaten
De nieuwe selectie moet op de juiste plek teruggeplakt worden.

In Internet Explorer is dit mij wel gelukt, maar ik wil het ook graag FF-compatible maken, aangezien 26.5% van mijn site-bezoekers Mozilla Firefox 1.0 gebruikt.
  vrijdag 10 december 2004 @ 10:21:19 #7
42782 QuietGuy
opscheppende pats-nerd
pi_23873029
Dit werkt in Internet Explorer in ieder geval:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<html>
 <head>
  <script language="JavaScript" type="text/javascript">
   function do_replace() {
      var what=document.forms[0].elements[0];
      if (what.createTextRange) {
         var range=document.selection.createRange();
         range.text=range.text.replace("123","321");
      }
      return false;
   }
  </script>
 </head>
 <body>
  <form>
   <textarea style="width: 400px; height: 250px;">test 123</textarea>
  </form>
  <a href="#" onClick="return do_replace();">klik</a>
 </body>
</html>

Als ik alles selecteer en klik dan staat er test 321
pi_23873389
1
2
3
4
5
6
7
8
9
10
11
12
if(what.selectionStart || what.selectionEnd)
{
  
  txts = what.value.substring(0, what.selectionStart);
  txtr  = what.value.substring(what.selectionStart);
  txtr  = txtr.substring(0, what.selectionEnd - what.selectionStart);
  txtr  = txtr.replace("123", "321");
  txte  = what.value.substring(what.selectionEnd);
  document.title = txts + '|' + txtr + '|' + txte + 
        '(' + what.selectionStart + ',' + what.selectionEnd + ')';
  what.value = txts +  txtr +  txte;
}


Die 2 substrings voor txtc is niet helemaal zoals het hoort, maar er gebeurde hier rare dingen als ik het in een substring deed. Maar goed, je kan weer verder
  vrijdag 10 december 2004 @ 10:56:28 #9
42782 QuietGuy
opscheppende pats-nerd
pi_23873564
Roönaän, had ik al gezegd dat je geweldig bent? tnx!
pi_23873618
owh.. ff die document.title eruit
  vrijdag 10 december 2004 @ 11:02:05 #11
42782 QuietGuy
opscheppende pats-nerd
pi_23873687
quote:
Op vrijdag 10 december 2004 10:58 schreef Roönaän het volgende:
owh.. ff die document.title eruit
debugging is ok
  vrijdag 10 december 2004 @ 11:43:42 #12
42782 QuietGuy
opscheppende pats-nerd
pi_23874461
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
function textarea_getselection(what) {
   if (what.createTextRange) {
      var sel=document.selection.createRange();
      return sel.text;
   } else if(what.selectionStart && what.selectionEnd) {
      var sel=what.value.substring(what.selectionStart);
      return sel.substring(0,what.selectionEnd-what.selectionStart);
   } else {
      return false;
   }
}

function textarea_setselection(what,text) {
   if (what.createTextRange) {
      var sel=document.selection.createRange();
      sel.text=text;
   } else if(what.selectionStart && what.selectionEnd) {
      var txt_left=what.value.substring(0,what.selectionStart);
      var txt_right=what.value.substring(what.selectionEnd);
      what.value=txt_left+text+txt_right;
   } else {
      return false;
   }
}

function set_bold() {
   var what=document.forms[0].elements[0];
   textarea_setselection(what,'[b]'+textarea_getselection(what)+'[/b]');
   return false;
}


Met als HTML:

1
2
3
4
  <form>
   <textarea style="width: 400px; height: 250px;">test 123</textarea>
  </form>
  <a href="#" onClick="return set_bold();">klik</a>


Zo dan Werkt in IE6 en FF1. Niet in NS7. In safari kan ik nog niet testen nu...
pi_24850022
Handig, op je werk weinig te doen hebben. Dan heb je nog eens tijd in DIG te lezen en kom je nog eens oude topics tegen

Anyway, ik kan vanavond thuis wel even met Konqueror kijken. Safari heb ik niet, maar zoveel zou dat niet uit mogen maken.
  maandag 31 januari 2005 @ 14:07:31 #14
42782 QuietGuy
opscheppende pats-nerd
pi_24850082
quote:
Op maandag 31 januari 2005 14:04 schreef Light het volgende:
Anyway, ik kan vanavond thuis wel even met Konqueror kijken. Safari heb ik niet, maar zoveel zou dat niet uit mogen maken.
In Safari werkt hij niet
pi_24850340
quote:
Op maandag 31 januari 2005 14:07 schreef QuietGuy het volgende:

[..]

In Safari werkt hij niet
Dan in Konqueror vast ook niet. Maar daar ben ik vanavond snel genoeg achter En nee, ik ga het niet voor je oplossen
pi_24853752
Ja zeg. iemand nog een goedkope mac liggen?
pi_24853824
quote:
Op maandag 31 januari 2005 14:07 schreef QuietGuy het volgende:

[..]

In Safari werkt hij niet
In Konqueror ook niet.
  maandag 31 januari 2005 @ 21:59:30 #18
42782 QuietGuy
opscheppende pats-nerd
pi_24853877
quote:
Op maandag 31 januari 2005 21:51 schreef Roönaän het volgende:
Ja zeg. iemand nog een goedkope mac liggen?
Ik hier, interesse? kom dan ff op msn
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')