在localStorage中存储多个文本选择

时间:2014-02-07 02:58:44

标签: javascript google-chrome google-chrome-extension

我正在使用Chrome扩展程序,允许用户突出显示网页上的文字。很简单,但它可以帮助我学习。现在,我陷入困境,正在寻找如何最好地解决问题。

目前,我可以突出显示页面上保留的所选文本。

的JavaScript

function addHilite(color) {
    var range, sel = window.getSelection();
    if (sel.rangeCount && sel.getRangeAt) {
        range = sel.getRangeAt(0);
    }
    document.designMode = "on";

    if (range) {
        sel.addRange(range);
    };

    if (!document.execCommand("hiliteColor", false, "#FFFF00")) {
        document.execCommand("backColor", false, "#FFFF00");
    }
    document.designMode = "off";
    console.log(range);
}

我正试图让用户可以选择突出显示的范围并使用相同的浏览器操作撤消突出显示。我认为localStorage是在每次点击之间保存状态的好方法,但我无法弄清楚如何将多个范围存储为字符串以供参考。有更好的方法吗?

localStorage实验

function sel() {
    var getText = window.getSelection().toString();
    localStorage.setItem('getText', JSON.stringify(getText));

    console.log(JSON.parse(localStorage.getItem('getText')));
}

1 个答案:

答案 0 :(得分:0)

你是说这样的意思吗?

var selections = [];

function sel() {
    var getText = window.getSelection().toString();
    selections.push(getText);
    localStorage.setItem('getText', selections);

    console.log(localStorage.getItem('getText'));
}