Показать сообщение отдельно
  #21 (permalink)  
Старый 30.03.2017, 11:59
Аватар для shyxeroks
Аспирант
Отправить личное сообщение для shyxeroks Посмотреть профиль Найти все сообщения от shyxeroks
 
Регистрация: 02.03.2017
Сообщений: 38

Alexandroppolus, я сделал так:
////// открыть div со смайлами
function open_smile(div){
if($('.smile_block').css('display') == 'none'){	
$('.'+div).focus();
$('.smile_block').fadeIn(500);	
$('.smile').css('opacity','1');	
}
}	
//// вставить смайл
function smile_add(div, src){
var block = document.querySelector(div);	
var test = div.querySelectorAll('img.smile_add_block').length;
alert(test)
var sel = window.getSelection();
if (!sel || !sel.rangeCount) { return; }
var r = sel.getRangeAt(0);
if (!r) { return; }
for (var n = r.commonAncestorContainer; n != block; n = n.parentNode) {
if (!n) { return; }
}
var img = new Image();
img.className = 'smile_add_block';
img.src = src;
r.deleteContents();
r.insertNode(img);  
r = document.createRange();
r.selectNode(img);
r.collapse(false);
sel.removeAllRanges();
sel.addRange(r);
try {
block.focus();
}catch(exc){}
}

В консоли ругается на querySelectorAll. Еще такой вопрос, querySelector ищет на странице только один элемент, а querySelectorAll все элементы на странице, то бишь это div переданный в функцию, правильно? С php проблем нет, js на стадии изучения, благодарю)
У нас же уже есть переменная var block = document.querySelector(div);
Может block использовать просто нужно?

Последний раз редактировалось shyxeroks, 30.03.2017 в 12:06.
Ответить с цитированием