Есть <div> элемент с определенным текстом.
Как выполнить перемещение указателя к соответствующей букве <div> в ExtJS?
Пример на Javascript не работает в ExtJS:
<html>
<head>
<title>set cursor position N10</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
function focusPackageCode(id) {
var node = document.querySelector('div#' + id + 'word');
node.focus();
var textNode = node.firstChild;
var caret = 10;
var range = document.createRange();
range.setStart(textNode, caret);
range.setEnd(textNode, caret);
var sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
}
</script>
</head>
<body>
<div id="packagecode1word" name="packagecode1word" contenteditable="true">set cursor position N10</div>
<p align="center" onClick="focusPackageCode('packagecode1');">Set</p>
</body>
</html>
Как видите функция работает в Javascript но не в ExtJS. Когда я кликаю на кнопку "Set" указатель в "<div>" перемещается к букве номер 10.
Но когда пытаюсь выполнить эту функцию в ExtJS не работает:
increaseIndex: 0,
this.increaseIndex++;
nodeScriptFunction.appendChild(
doc.createTextNode(
'function focusPackageCode' + this.increaseIndex +
"(id){var node = document.querySelector('div#'+id+'word');node.focus();var textNode = node.firstChild;var caret = 10;var range = document.createRange();range.setStart(textNode, caret);range.setEnd(textNode, caret);var sel = window.getSelection();sel.removeAllRanges();sel.addRange(range);}"
)
);
nodeName.setAttribute('onClick','focusPackageCode' + this.increaseIndex + '(this.id);');
nodeText.setAttribute('id','packagecode' + this.increaseIndex + 'word');
nodeText.setAttribute('contenteditable','true');
Когда я кликаю на кнопку 'onClick' появляется такая ошибка:
Цитата:
|
Uncaught TypeError: Failed to execute 'setStart' on 'Range': parameter 1 is not of type 'Node'.
|