在textarea中查找并选择下一个字符串

时间:2015-08-27 15:45:19

标签: javascript

我正在尝试在javascript应用中为textarea实现查找和替换功能。

我已经有了很多工作,但对于一个令人难以置信的奇怪的错误,我不知道如何解决。

基本上,50%的时间此代码按预期工作。每次运行该函数时,它都会选择我的字符串的下一个实例。然而,另外50%它只是一遍又一遍地重新选择相同的文本。

这种不一致最令人困惑。我可以重新启动应用程序,每次都有不同的工作方式。这是我的代码。我猜这可能与性能有关?有什么想法吗?

function selectNext() {
    // collect variables
    var findBox = document.getElementById('findBox');
    var editable = document.getElementById('editable');
    var txt = editable.innerText;
    var strSearchTerm = findBox.value;

    // find next index of searchterm, starting from current cursor position
    var cursorPos = editable.selectionEnd;
    var termPos = txt.indexOf(strSearchTerm, cursorPos);

    // if found, select it
    if (termPos != -1) {
        editable.setSelectionRange(termPos, termPos + strSearchTerm.length)
    } else {
        // not found from cursor pos, so start from beginning
        termPos = txt.indexOf(strSearchTerm);
        if (termPos != -1) {
            editable.setSelectionRange(termPos, termPos + strSearchTerm.length)
        }
    }

};

0 个答案:

没有答案