DivMan

Как вставить курсор в нужное место?

Recommended Posts

При клике на кнопку, в блок (с атрибутом contenteditable) помещается имя и оборачивается в элемент b и надо потом печатать после имени, если кликнуть потом в этот блок, то курсор не выходит за пределы элемента b и получается весь напечатанный текст будет тоже жирным, как вывести курсор за этот элемент?

 

Почему то selectionStart не работает.

<p style="
padding: 10px; 
background: white; 
width: 50%;" 
                   
contenteditable="true" class="write-comment"></p>

 

var formComment = document.querySelector('.write-comment');
var userNameHtml = document.createElement('b'); 
userNameHtml.innerHTML = userName + ',&nbsp;';
                
formComment.appendChild(userNameHtml);
formComment.focus();
formComment.selectionStart = formComment.innerHTML.length;

 

Share this post


Link to post
Share on other sites
var formComment = document.querySelector('.write-comment');
formComment.innerHTML = '<b>' + userName + ',' + '</b>' + '&nbsp;';
formComment.appendChild(userNameHtml);

Можно так:

<p id='aaa' style="
padding: 10px; 
background: white; 
width: 50%;"                    
contenteditable="true" class="write-comment"></p> 
<button id="btn">Click me</button>
var userName = "Vasya Pupkin";

btn.onclick = function () {
  var formComment = document.querySelector(".write-comment");
  formComment.innerHTML = "<b>" + userName + "</b>" + ", ";
  formComment.focus();
  var sel = window.getSelection();
  var range = document.createRange();
  range.setStart(formComment, formComment.childNodes.length);
  range.collapse(true);
  sel.removeAllRanges();
  sel.addRange(range);
};

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Member Statistics

    46,251
    Total Members
    3,128
    Most Online
    shottywork
    Newest Member
    shottywork
    Joined
  • Recently Browsing   0 members

    No registered users viewing this page.



  • Спрашивают сейчас

  • Пишут сейчас

    • Создали большой гибкий сайт на тематику "Продажа лекарств от Гепатита" Сделано: - С нуля разработана концепция и структура сайта;
      - Разработан стильный и современный дизайн;
      - Качественная верстка и программирование сайта (быстрая загрузка, чистый, валидный код);
      - Натянули на Wordpress;
      - Подобрали хостинг и домен для клиента, установили и настроили сайт.
      - бонусом предоставили рекомендации по оптимизации и раскрутке сайта от нашего СЕОшника Клиент получил гибкую платформу, которая максимально удобная как для администратора, так и для покупателей сайта.
      Наполнять сайт текстами клиент предпочел сам.
      Сделали для клиента текстовую, а также видео инструкцию по управлению сайтом:
      https://www.youtube.com/watch?v=PREmX06KayQ
      https://www.youtube.com/watch?v=Kbh4CW4pui4 Ссылка на сайт http://sofosbuvir-daklatasvir.ru/ Срок изготовления сайта - 1 месяц. Если вам нужен качественно представить свою услугу, товары или компанию пишите по контактам ниже, сделаем вам крутой веб-ресурс, будь то Landing Page, Сайт многостраничник, Интернет-магазин, группа в соц сетях. 
      По невысокой цене и разумные сроки Контакты: Телеграм: @Nikker
      Скайп: smo_perviy
      E-Mail: Golllandec@gmail.com    
    • Внимание - Акция - от AlfaHoster!!

      Представляем наш новый тариф - Бесплатный Хостинг!
      Параметры тарифа: SSD -150Mb, RAM - 128Mb, MySQL 5.5.6 -2
      Все подробности параметров тарифа смотрите на страничке сайта хостинг-компании AlfaHoster
      Теперь практически любой может воспользоваться услугами хостинга - бесплатно.
      Поспешите воспользоваться моментом - и протестировать наши услуги, акция ограничена во времени!
      _________________
      AlfaHoster.com - надежный и недорогой хостинг для сайтов
    • Не соглашусь с Вами. Вот вам 2 очень простых примера. LESS: @color: red; a { color: @color; } @color: blue; Итог: a { color: blue; }   SASS: $color: red; a { color: $color; } $color: blue; Итог: a { color: red; } Разница в обоих результатах совершенно разная. Этим успешно можно пользоваться. Вариант с LESS шикарно решает задачи, когда требуется "сквозная" конфигурация проекта (внесение изменений в конфигурацию на любом этапе выполнения). Вариант с SASS потребует от разработчика в начале определять переменные, и лишь потом ими пользоваться, не имея возможности влиять на их значение в любой момент выполнения.
  • Popular Contributors