Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 29.03.2017, 10:02
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от shyxeroks
Если в url нет get, то ошибка и загрузка останавливается
Как вариант...

var url='http://....../#page=reviews?id=2?&section=1?&status=5 ';
alert(getPrm('id',url))
alert(getPrm('section',url))
alert(getPrm('status',url))
alert(getPrm('test',url))
function getPrm(Name,Url){
	var reg=new RegExp(Name+'=[^?&]*');
	return reg.test(Url)? Url.match(reg).toString().split('=')[1]: '';
};
Ответить с цитированием
  #12 (permalink)  
Старый 29.03.2017, 10:10
Аватар для shyxeroks
Аспирант
Отправить личное сообщение для shyxeroks Посмотреть профиль Найти все сообщения от shyxeroks
 
Регистрация: 02.03.2017
Сообщений: 38

Благодарю, с регулярками разобрался. С contenteditable кареткой не все так просто оказалось . Возможно ли хотя бы вставить смайл в местоположение каретки, а не в самый конец?
Ответить с цитированием
  #13 (permalink)  
Старый 29.03.2017, 10:40
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от shyxeroks
Возможно ли хотя бы вставить смайл в местоположение каретки, а не в самый конец?
Может это поможет...
http://web-answers.ru/questions-and-...mesto-kursora/
Ответить с цитированием
  #14 (permalink)  
Старый 29.03.2017, 12:16
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

https://jsfiddle.net/297wbkdj/
Ответить с цитированием
  #15 (permalink)  
Старый 29.03.2017, 12:42
Аватар для shyxeroks
Аспирант
Отправить личное сообщение для shyxeroks Посмотреть профиль Найти все сообщения от shyxeroks
 
Регистрация: 02.03.2017
Сообщений: 38

Alexandroppolus, работает, благодарю, но есть недочет, если див не в фокуса, а просто сразу вставляешь изображение, то вставляется вне div, и если div пустой, то первым смайл не ставится. Извиняюсь, а класс можно для img добавить? В консоле:
Uncaught TypeError: div.focus is not a function
at smile_add (smile.js:181)
at HTMLImageElement.onclick (VM20820 :1)

Вот посмотрите скрин:
http://joxi.ru/n2YYWbPco4D3k2

Последний раз редактировалось shyxeroks, 29.03.2017 в 12:48.
Ответить с цитированием
  #16 (permalink)  
Старый 29.03.2017, 13:25
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

https://jsfiddle.net/5frtszko/
добавил класс для картинки
сделал проверку, что каретка (или выделенный кусок) строго внутри div
Ответить с цитированием
  #17 (permalink)  
Старый 29.03.2017, 13:39
Аватар для shyxeroks
Аспирант
Отправить личное сообщение для shyxeroks Посмотреть профиль Найти все сообщения от shyxeroks
 
Регистрация: 02.03.2017
Сообщений: 38

Alexandroppolus, благодарю. Жаль карму плюсануть больше не могу. Попробуйте без фокуса на div нажать input.
Ответить с цитированием
  #18 (permalink)  
Старый 29.03.2017, 13:57
Аватар для shyxeroks
Аспирант
Отправить личное сообщение для shyxeroks Посмотреть профиль Найти все сообщения от shyxeroks
 
Регистрация: 02.03.2017
Сообщений: 38

У меня что-то совсем бяда, не вставляются вообще:
<img src="/images/smile/<?=$i;?>.gif" class="smile_add" onclick="smile_add('reviews_text_edit','/images/smile/<?=$i;?>.gif');">
<div contenteditable="true" onFocus="text_edit_div('reviews_text_edit');exit_smile();" onblur="text_edit_div('reviews_text_edit');" class="reviews_text_edit">Введите текст...</div>


function smile_add(div, src) {
	var sel = window.getSelection();
  if (!sel || !sel.rangeCount) { return; }
  var r = sel.getRangeAt(0);
  if (!r) { return; }
  
  for (var n = r.commonAncestorContainer; n != div; n = n.parentNode) {
  	if (!n) { return; }
  }
  var img = new Image();
  img.className = 'my-img';
  img.src = src;
  r.deleteContents();
  r.insertNode(img);  
  r = document.createRange();
  r.selectNode(img);
  r.collapse(false);
  sel.removeAllRanges();
  sel.addRange(r);
  try {
  div.focus();
  } catch(exc) {}
}
Ответить с цитированием
  #19 (permalink)  
Старый 30.03.2017, 11:09
Аватар для shyxeroks
Аспирант
Отправить личное сообщение для shyxeroks Посмотреть профиль Найти все сообщения от shyxeroks
 
Регистрация: 02.03.2017
Сообщений: 38

Alexandroppolus, благодарю разобрался. Фокус сразу устанавливаю во время открытия окна со смайлами. Бывает маленько не четко работает, но это ерунда впринцепе (не всегда почему то в конец вставляется).

У меня еще вопрос по поводу регулярки, добавить нужно к этой функции. Перед вставкой, проверить количество вставленных уже в div смайлов, я думаю может просто посчитать количество тегов в div (img). К примеру если больше 10 штук, то открыть спрятанный div с предупреждающим текстом. Подскажите регулярку для подсчета, благодарю!

Последний раз редактировалось shyxeroks, 30.03.2017 в 11:28.
Ответить с цитированием
  #20 (permalink)  
Старый 30.03.2017, 11:44
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

shyxeroks,

тут регулярки не нужны, просто смотри сколько картинок с таким классом внутри твоего редактируемого дива
div.querySelectorAll('img.my-img').length


ну и, разумеется, всё равно надо будет на сервере проверку сделать, если это критично.

Последний раз редактировалось Alexandroppolus, 30.03.2017 в 11:46.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регулярное выражение tata4ka Общие вопросы Javascript 4 15.11.2014 00:56
Регулярное выражение и метод test tsigel Общие вопросы Javascript 3 30.08.2013 13:47
регулярное выражение literator Ваши сайты и скрипты 1 18.08.2013 18:24
Регулярное выражение: любой символ, включая перевод строки Gleb Общие вопросы Javascript 3 28.07.2011 12:15
регулярное выражение theo_ Общие вопросы Javascript 15 21.06.2010 10:29