7 Stimmen

Gibt es eine Möglichkeit, MEHRERE Textbereiche mit JS in Chrome und/oder IE auszuwählen?

Firefox 3 kann MEHRERE Textbereiche mit JS auswählen. Gibt es eine Möglichkeit, dies in Chrome und IE zu tun?

Ich habe wirklich versucht, einen Weg zu finden, um aus mehreren Textareas auf einer Webseite in Chrome und IE9 auszuwählen.


Infos unter: http://help.dottoro.com/ljxsqnoi.php


Beispiel bei: http://jsfiddle.net/t3sWz/


Code nur FireFox3.5+... (aber das ist die Frage):

<html>

<head>
    <meta charset="UTF-8">
    <style>
        #trigger { background: yellow }
    </style>
</head>

<body>
    <p id="test">
        This is some text you can highlight by dragging or clicking below.
    </p>
    <span id="trigger">
        Click here to select "This" and "some"
    </span>
    <a> - Firefox only :-(</a>
    <br>
    <br>
    <br>
    <br>
    <br>
    <input type="button" value="Get selection" onmousedown="getSelText()">
    <form name=aform>
        <textarea name="selectedtext" rows="5" cols="20">
        </textarea>
    </form>
    <script>
        var testCase = function() {
            var userSelection;

            if (window.getSelection) {
                userSelection = window.getSelection();
            } // No support for IE
            var textNode = document.getElementById('test').firstChild;
            var theRange = document.createRange();

            // select 0th–4th character
            theRange.setStart(textNode, 0);
            theRange.setEnd(textNode, 4);

            // set user selection    
            userSelection.addRange(theRange);

            var textNode = document.getElementById('test').firstChild;
            var theRange = document.createRange();

            // select 8th–12th character
            theRange.setStart(textNode, 8);
            theRange.setEnd(textNode, 12);

            // set user selection    
            userSelection.addRange(theRange);
        };

        window.onload = function() {
            var el = document.getElementById('trigger');
            el.onclick = testCase;
        };

        function getSelText() {
            var txt = '';
            if (window.getSelection) {
                txt = window.getSelection();
            } else if (document.getSelection) {
                txt = document.getSelection();
            } else if (document.selection) {
                txt = document.selection.createRange().text;
            } else
            return;
            document.aform.selectedtext.value = txt;
        }
    </script>
</body>

6voto

Tim Down Punkte 304837

Nein. Von den wichtigsten Browsern unterstützt nur Firefox mehrere Bereiche innerhalb der Benutzerauswahl. Andere Browser (WebKit, Opera, IE9) haben die Selection API, um mehrere Bereiche zu unterstützen, aber derzeit wird dies nicht unterstützt. WebKit ist Offenbar ist nicht geplant, die Unterstützung in nächster Zeit zu erweitern. . Was Opera und IE betrifft, habe ich keine Ahnung.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X