Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помощь с функциональностью (https://javascript.ru/forum/misc/53297-pomoshh-s-funkcionalnostyu.html)

danik.js 29.01.2015 03:07

Цитата:

Сообщение от DeV1doR
так?

Так. Только ты смотришь документацию на одноименный метод массива, а не строки ;)

DeV1doR 29.01.2015 03:12

danik.js,
https://developer.mozilla.org/ru/doc...s/String/slice
Я шляпа)
А еще такой вопрос, как можно заменить здесь innerHTML?

danik.js 29.01.2015 03:22

.textContent

Или
.firstChild.data (суть - текст содержится в текстовых узлах. firstChild и будет в данном случае текстовым узлом. Если элемент не содержит текста, то firstChild не существует и будет ошибка, так что такой вариант неудобен - я показал просто что такое есть).

DeV1doR 29.01.2015 03:48

danik.js,
Спасибо.

DeV1doR 29.01.2015 18:03

Кто подскажет, как добавить число между строки через кнопку? Например, число 12356, бац кликаю мышкой между 3 и 5, жму 4(на кальке) и вуаля 123456. Не додумался, кто сможет написать?

danik.js 29.01.2015 22:33

Цитата:

Сообщение от DeV1doR
Не додумался

Хреново дело. У тебя же minusOdin() делает почти то, что нужно. Только вместо вырезания символа между начальной и конечной частью строки, нужно наоборот, приплюсовать новый символ.

рони 29.01.2015 23:06

Вставка символа в место отмеченное курсором
 
Цитата:

Сообщение от DeV1doR
Например, число 12356, бац кликаю мышкой между 3 и 5, жму 4(на кальке) и вуаля 123456.

<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>
  <input id="res" name="" value="12356">
  <input id="ok" name="" type="button" value="4">
  <script>
 document.querySelector("#ok").onclick = function() {
    var target = document.querySelector("#res"),
        text = target.value,
        caretPos = 0;
    if (document.selection) {
        target.focus();
        var sel = document.selection.createRange();
        sel.moveStart("character", -target.value.length);
        caretPos = sel.text.length
    } else if (target.selectionStart || target.selectionStart == "0") caretPos = target.selectionStart;
    target.value = text.substr(0, caretPos) + this.value + text.substr(caretPos);
    caretPos++
    if (target.setSelectionRange) {
        target.focus();
        target.setSelectionRange(caretPos, caretPos)
    } else if (target.createTextRange) {
        var range = target.createTextRange();
        range.collapse(true);
        range.moveEnd("character", caretPos);
        range.moveStart("character", caretPos);
        range.select()
    }
};
  </script>
</body>

</html>

danik.js 30.01.2015 01:45

Это нужно для IE8-. Не думаю чтоDeV1doR'у нужен кроссбраузерный калькулятор :)

рони 30.01.2015 02:24

Цитата:

Сообщение от danik.js
Это нужно для IE8-.

то есть ты предлагаешь оставить так? или другой вариант?
<!DOCTYPE HTML>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>
  <input id="res" name="" value="12356">
  <input id="ok" name="" type="button" value="4">
  <script>
 document.querySelector("#ok").onclick = function() {
    var target = document.querySelector("#res"),
        text = target.value,
        caretPos = target.selectionStart;
    target.value = text.substr(0, caretPos) + this.value + text.substr(caretPos);
    caretPos++;
    target.focus();
    target.setSelectionRange(caretPos, caretPos)
   };
  </script>
</body>
</html>

DeV1doR 30.01.2015 18:39

рони,
спс, теперь надо все это переварить)
danik.js,
хочу понять принцип взаимодействия с мышкой, про кроссбраузерность не думал)


Часовой пояс GMT +3, время: 09:09.