WN

WN (https://www.wn.se/forum/index.php)
-   Klientsidans teknologier, design och grafik (https://www.wn.se/forum/forumdisplay.php?f=12)
-   -   JS: hämta markerad text (https://www.wn.se/forum/showthread.php?t=9892)

Klorinsky 2005-09-16 13:04

Jag försöker göra ett script som hämtar den markerade texten i en textarea.


Kod:

<html>
<head>
<script type="text/javascript">
<!--
function getSel()
{
        var txt = '';
        var foundIn = '';
        if (window.getSelection)
        {
 foundIn = 'window.getSelection()';
txt=window.getSelection()+'';
txt=(txt.length==0)?document.title:txt;
  alert(txt);
        }
        else if (document.getSelection)
        {
 txt = document.getSelection();
 foundIn = 'document.getSelection()';
        }
        else if (document.selection)
        {
 txt = document.selection.createRange().text;
 foundIn = 'document.selection.createRange()';
        }
        else return;
        document.forms[0].selectedtext.value = 'Found: ' + foundIn + '\nResult:' + txt;

}
// -->
</script>
</head>

<body>
<form action="get">
<input type="button" value="GET IT!" onmousedown="getSel()"> <br>
<textarea name="selectedtext" rows="10" cols="80"></textarea>
</form>


Har den även på http://www.fullast.com/slaskhora.html

Detta fungerar utmärkt i IE men vill inte fungera i FF. Efter en hel del googling så SKALL window.getSelection() fungera med FF men icke. Jag hittade även lite workarounds på http://joemaller.com/2005/04/24/post503/ge...tion-workaround men det vill inte fungera! Skall jag tvingas till att strunta i FF eller finns det någon bra lösning? Help!

Bjarne 2005-09-16 13:50

Du kan använda


Kod:

document.getElementById(elementId).selectionStart
och

Kod:

document.getElementById(elementId).selectionEnd
för att plocka ut en substring som innehåller den markerade texten.

Alltså, i din kod nåt i stil med

Kod:

foundIn = document.getElementById(elementId).value.substring(document.getElementById(elementId).selectionStart, document.getElementById(elementId.selectionEnd);

Klorinsky 2005-09-16 14:34

Fick inte det att fungera med det heller

wiggin 2005-09-16 15:45

Det har smugit in ett lite fel om du bara copy-pejsta koden. Det saknas ett )

Citat:

foundIn = document.getElementById(elementId).value.substring (document.getElementById(elementId).selectionStart , document.getElementById(elementId).selectionEnd);


Alla tider är GMT +2. Klockan är nu 00:37.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson