簡體   English   中英

如何在window.getSelection中選擇多個單詞

[英]How to select multi words in window.getSelection

如何在window.getSelection選擇多個單詞。

在這段代碼中,如果我選擇tweenen paragrap ,它將鎖定單詞paragraphs而在兩者之間遺漏`。 我需要選擇兩個單詞。

甚至我選擇dd 2 spa 3個單詞,它將選擇3個單詞add 2 spaces 謝謝。

<script type="text/javascript">
    function Selected() {
        var sel;
        if ((window.getSelection) && (sel = window.getSelection()).modify) {
            sel = window.getSelection();
            if (!sel.isCollapsed) {
                sel.modify("move", "backward", "word");
                sel.modify("extend", "forward", "word");
            }
        }
    }
</script>
<p>put returns between paragraphs, for linebreak add 2 spaces at end</p>
<input type="button" onclick="Selected();" value="selected">

如果我對您的理解正確,則希望該按鈕將所選內容對齊到整個單詞。 如果是這樣,請按照以下步驟操作:

現場演示: http//jsfiddle.net/uCHVQ/1/

碼:

function Selected() {
    var sel;
    if ((window.getSelection) && (sel = window.getSelection()).modify) {
        sel = window.getSelection();
        if (!sel.isCollapsed) {

            // Detect if selection is backwards
            var range = document.createRange();
            range.setStart(sel.anchorNode, sel.anchorOffset);
            range.setEnd(sel.focusNode, sel.focusOffset);
            var backwards = range.collapsed;
            range.detach();

            // modify() works on the focus of the selection
            var endNode = sel.focusNode, endOffset = sel.focusOffset;
            sel.collapse(sel.anchorNode, sel.anchorOffset);
            if (backwards) {
                sel.modify("move", "forward", "word");
                sel.extend(endNode, endOffset);
                sel.modify("extend", "backward", "word");

            } else {
                sel.modify("move", "backward", "word");
                sel.extend(endNode, endOffset);
                sel.modify("extend", "forward", "word");
            }
        }
    }
}

(順便說一句,該代碼最初是我發布的內容嗎?看起來很熟悉,但我找不到它)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM