Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2015, 21:49   #1
conflictogen
Пользователь
 
Регистрация: 12.05.2015
Сообщений: 15
Вопрос текстовый редактор, заменить div на p - JavaScript

Здравствуйте.

Пишу текстовый редактор для админки, есть такая проблема : в окне редактора (iframe с designMode = "on") , по нажатию на enter создается div, который будет содержать контент.
Необходимо вместо div создавать p .

Узнал, что див создается из-за работы с designMode = "on" .

Я представляю решение так : отловить enter , создать p , и отменить действие по умолчанию .

Код:
frame.onkeydown = function(event) {
  if (event.keyCode == 13) {
    p = frame.document.createElement("p");
    frame.document.body.appendChild(p);
    event.preventDefault();
  }
}
В моем примере скрипт работает, тег p вместо div создается, но курсор внутрь тега не попадает и добавить контент в него нельзя, курсор остается на прежнем месте (в начале).

Подскажите логику, как можно исправить это, или возможно, есть другие способы ?
conflictogen вне форума Ответить с цитированием
Старый 14.12.2015, 10:41   #2
SQLPowerUser
Форумчанин
 
Аватар для SQLPowerUser
 
Регистрация: 19.01.2015
Сообщений: 158
Вопрос Так?

Код HTML:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style>
p {border:1px solid #ccc; padding:4px;}
</style>
</head>
<body>
<button onclick="setFocus('p1')">Переместить курсор</button>
<p id="p1" contenteditable="true">Некий текст</p>
<script>
function setFocus(idx) {
  document.getElementById(idx).focus();
}
</script>
</body>
</html>
SQLPowerUser вне форума Ответить с цитированием
Старый 14.12.2015, 13:51   #3
conflictogen
Пользователь
 
Регистрация: 12.05.2015
Сообщений: 15
По умолчанию

Цитата:
Сообщение от SQLPowerUser Посмотреть сообщение
Код HTML:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style>
p {border:1px solid #ccc; padding:4px;}
</style>
</head>
<body>
<button onclick="setFocus('p1')">Переместить курсор</button>
<p id="p1" contenteditable="true">Некий текст</p>
<script>
function setFocus(idx) {
  document.getElementById(idx).focus();
}
</script>
</body>
</html>
Не так. Нужна форма редактирования контента. Допустим, изначально контента нет, или есть но не тег <p>, а например <i>, или любой другой - куда , по вашему примеру будет целиться focus(), и что будет ему передаваться ?

Моя задача - придумать логику, как сделать чтобы вместо div создавался p с возможностью добавления в него контента (например так :
Код:
frame.onkeydown = function(event) {
  if (event.keyCode == 13) {
   frame.document.execCommand('formatblock', false, "p");
  }
}
, - но так не работает, хотя сама функция у меня рабочая).

Последний раз редактировалось conflictogen; 14.12.2015 в 13:55.
conflictogen вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Текстовый редактор в C++ oxotnik1994 Помощь студентам 0 31.03.2013 13:49
Текстовый редактор Nazario Общие вопросы Delphi 12 18.04.2011 22:38
Текстовый редактор Flyguy06 Помощь студентам 2 24.11.2010 13:26
Текстовый редактор в Си joks Общие вопросы C/C++ 1 17.11.2010 00:49
Текстовый редактор Славный Общие вопросы Delphi 3 02.07.2008 23:17