Во-первых, NaN - это «число» (да, я знаю, что это странно, просто катитесь с ним), а не «функция».
Вам нужно проверить, является ли тип переменной числом, и проверить целое число, я бы использовал модуль.
alert(typeof data === 'number' && data%1 == 0);
Используйте это, из здесь :
function insertAtCaret (areaId, text) {var txtarea = document.getElementById (areaId); если (! txtarea) {возврат; } var scrollPos = txtarea.scrollTop; вар strPos = 0; var br = ((txtarea.selectionStart || txtarea.selectionStart == '0')? "ff": (document.selection? "ie": false)); если (br == "то есть") {txtarea.focus (); var range = document.selection.createRange (); range.moveStart ('символ', -txtarea.value.length); strPos = range.text.length; } иначе, если (br == "ff") {strPos = txtarea.selectionStart; } var front = (txtarea.value) .substring (0, strPos); var back = (txtarea.value) .substring (strPos, txtarea.value.length); txtarea.value = лицевая сторона + текст + обратная сторона; strPos = strPos + text.length; если (br == "то есть") {txtarea.focus (); var ieRange = document.selection.createRange (); ieRange.moveStart ('символ', -txtarea.value.length); ieRange.moveStart ('персонаж', strPos); ieRange.moveEnd ('персонаж', 0); ieRange.select (); } иначе, если (br == "ff") {txtarea.selectionStart = strPos; txtarea.selectionEnd = strPos; txtarea.focus (); } txtarea.scrollTop = scrollPos; }
Щелкните здесь, чтобы вставить a>
Я думаю, вы могли бы использовать следующий код JavaScript для отслеживания текстового поля с последним фокусом:
<script>
var holdFocus;
function updateFocus(x)
{
holdFocus = x;
}
function appendTextToLastFocus(text)
{
holdFocus.value += text;
}
</script>
Использование:
<input type="textbox" onfocus="updateFocus(this)" />
<a href="#" onclick="appendTextToLastFocus('textToAppend')" />
Предыдущее решение (props to gclaghorn) использует текстовое поле и вычисляет положение курсор тоже, так что это может быть лучше для того, что вы хотите. С другой стороны, этот был бы более легким, если это то, что вам нужно.
вы можете только сфокусировать нужное текстовое поле и вставить туда текст. нет способа узнать, где находится фокус AFAIK (возможно, взаимодействует по всем узлам DOM?).
проверьте этот stackoverflow - у него есть решение для вас: Как мне узнать, какой элемент DOM имеет фокус?