Frage

Ich möchte Text auf der Seite wählen, indem eine linke Maustaste gedrückt zu simulieren und ziehen Sie ihn an einem bestimmten x, y-Position (in Pixeln)

Kann dies mit JavaScript zu tun?

War es hilfreich?

Lösung

Ich glaube nicht, seine möglich, die Maus auf diese Weise zu steuern, mit Hilfe von JavaScript.

Sie können jedoch Teile eines Dokuments wählen Sie JavaScript direkt verwenden. Zum Beispiel:

var h3s = document.getElementsByTagName("h3");
var range = document.createRange();
range.selectNode(h3s[0]);
window.getSelection().addRange(range);

würde das erste h3 Element auswählen.

Siehe auch: http://www.quirksmode.org/dom/range_intro.html für weitere Informationen über Bereiche zu bauen.

Um den gesamten Körper eines Dokuments auswählen, können Sie verwenden:

var body = document.getElementsByTagName("body")[0];
var range = document.createRange();
range.selectNode(body);
window.getSelection().addRange(range);

das 3. Zeichen auszuwählen, sagen wir, den 4. Absatz in einem Dokument, versuchen Sie:

var p4 = document.getElementsByTagName("p")[3].firstChild;
var range = document.createRange();
range.setStart(p4, 2);
range.setEnd(p4, 3);
window.getSelection().addRange(range);

Andere Tipps

    /**
     * Select text between 2 elements. Support selection of continuous elements.
     * @param {Object} element1 begin element.
     * @param {Object} element2 end element.
     */
    function selectBetweenTwoElements(element1, element2) {
        if (window.getSelection) {
            /* all browsers, except IE 8 and IE 7 */
            var selection = window.getSelection();
            selection.removeAllRanges();
            var range = document.createRange();
            range.setStart(element1, 0);
            range.setEnd(element2, 1);
            selection.addRange(range);
        } else {
            /* works fine in IE 8 / IE 7 */
            if (document.body.createControlRange) {
                var range1 = document.body.createTextRange();
                range1.moveToElementText(element1);

                var range2 = document.body.createTextRange();
                range2.moveToElementText(element2);

                var range = document.body.createTextRange();
                range.setEndPoint("StartToStart", range1);
                range.setEndPoint("EndToEnd", range2);
                range.select();
            }
        }
    }

soweit ich weiß, dass nicht getan werden kann. der einzige Text, den Sie in einem Formularelement auswählen (Textfeld, Eingabetext usw.)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top