Цитата:
var url='http://....../#page=reviews?id=2?§ion=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]: ''; }; |
Благодарю, с регулярками разобрался. С contenteditable кареткой не все так просто оказалось :( . Возможно ли хотя бы вставить смайл в местоположение каретки, а не в самый конец?
|
Цитата:
http://web-answers.ru/questions-and-...mesto-kursora/ |
|
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 |
https://jsfiddle.net/5frtszko/
добавил класс для картинки сделал проверку, что каретка (или выделенный кусок) строго внутри div |
Alexandroppolus, благодарю. Жаль карму плюсануть больше не могу. Попробуйте без фокуса на div нажать input.
|
У меня что-то совсем бяда, не вставляются вообще:
<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) {} } |
Alexandroppolus, благодарю разобрался. Фокус сразу устанавливаю во время открытия окна со смайлами. Бывает маленько не четко работает, но это ерунда впринцепе (не всегда почему то в конец вставляется).
У меня еще вопрос по поводу регулярки, добавить нужно к этой функции. Перед вставкой, проверить количество вставленных уже в div смайлов, я думаю может просто посчитать количество тегов в div (img). К примеру если больше 10 штук, то открыть спрятанный div с предупреждающим текстом. Подскажите регулярку для подсчета, благодарю! |
shyxeroks,
тут регулярки не нужны, просто смотри сколько картинок с таким классом внутри твоего редактируемого дива div.querySelectorAll('img.my-img').length ну и, разумеется, всё равно надо будет на сервере проверку сделать, если это критично. |
Часовой пояс GMT +3, время: 05:24. |