簡體   English   中英

如何通過Firefox擴展操作選定的文本

[英]How do you manipulate selected text via a Firefox extension

我正在開發一個可以操作突出顯示文本的Firefox擴展程序

在獨立頁面上,我可以通過以下方式獲取所選文本:

selectedText = document.selection?document.selection.createRange().text;

然后我將使用有問題的textarea上的字符串操作來操作所選文本。 不幸的是,對於插件來說這是不可能的,因為我不知道用戶所選文本的位置。

有沒有辦法獲取選擇文本的元素的名稱或更改沒有元素名稱的選定文本?

selectedText = content.getSelection().toString();

您需要從用戶選擇中獲取范圍對象:

var userSelection;
if (window.getSelection)
    userSelection = window.getSelection();
else if (document.selection)    // should come last; Opera!
    userSelection = document.selection.createRange();

var rangeObject = getRangeObject(userSelection);

...

function getRangeObject(selectionObject) {
    if (selectionObject.getRangeAt)
        return selectionObject.getRangeAt(0);
    else { // Safari!
        var range = document.createRange();
        range.setStart(selectionObject.anchorNode, selectionObject.anchorOffset);
        range.setEnd(selectionObject.focusNode, selectionObject.focusOffset);
        return range;
    }
}

...

Range對象具有開始和結束容器節點等。

更多信息可以在Quirksmode 這里和w3.org上找到

暫無
暫無

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

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