Показать сообщение отдельно
  #1 (permalink)  
Старый 27.07.2015, 18:09
Новичок на форуме
Отправить личное сообщение для volodjavolodja85 Посмотреть профиль Найти все сообщения от volodjavolodja85
 
Регистрация: 27.07.2015
Сообщений: 3

Возможность перемещения указателя по <div> - ExtJS
Есть <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'.
Ответить с цитированием