ВЫПУСК:
У меня есть устаревший код, работающий с IE, который я пытаюсь сделать кросс-браузерным совместимым.Одной из функций, с которыми я боролся, чтобы работать в современных браузерах (в частности, в Chrome), является функция .select () для ввода текста.В настоящее время пользователи вводят значение в поле, а затем нажимают кнопку «найти на странице», и соответствующий текст будет выделен в таблице ниже.
Internet Explorer:
![Working select() functionality in IE](https://i.stack.imgur.com/6fc81.png)
Google Chrome:
![Broken select() in Chrome](https://i.stack.imgur.com/WvVQD.png)
Как видно выше, в Chrome текст неподсвечен.Приводит меня к мысли, что в Chrome поддерживается функция select () NOT .Однако согласно https://www.w3schools.com/jsref/met_text_select.asp эта функция поддерживается Chrome.
СООТВЕТСТВУЮЩИЙ КОД:
HTML Кнопка для выбора текста:
<td align="center"><input type="text" name="textSearchInput" onkeypress="if (event.keyCode == 13) {textSearch(textSearchInput.value); return false;}" size="15" maxlength="30"><button type="button" id="formSubmit2" onclick="textSearch(textSearchInput.value);"><bean:message key="fp.inventory.textSearch"/></button></td>
JavaScript для поиска и выделения, что WORKS inInternet Explorer, но НЕ работает в Chrome:
var oRange = null;
function textSearch(str)
{
if ((str == null) || (str == ''))
return;
if (oRange == null)
{ // first entry, or wrap search from the end
oRange = document.body.createTextRange();
}
else
{ // move caret forward
oRange.move('character', 1);
}
var found = oRange.findText(str);
if (found)
{ // highlight and scroll to there
oRange.focus();
oRange.select();
oRange.scrollIntoView(false);
}
else
{ // see if str exists at all by going backward
found = oRange.findText(str, -1);
if (found)
{ // wrap search
oRange = null;
textSearch(str);
}
}
Есть ли что-то еще, чего мне не хватает в этом?Я не очень хорошо разбираюсь в HTML или JavaScript, поэтому я мог упустить что-то простое ..