Показать сообщение отдельно
  #9 (permalink)  
Старый 15.12.2014, 17:14
Интересующийся
Отправить личное сообщение для нуб-нубом Посмотреть профиль Найти все сообщения от нуб-нубом
 
Регистрация: 15.12.2014
Сообщений: 13

получается, что нужно удалить из строки всё специальное (цифры, символы, пробелы), и заменять ее только если она не пуста..
а еще строку нужно преобразовать в набор букво-цифр..

в итоге получилось так:
(function(){
    var elems = document.querySelectorAll('#rep1, #repx *'), i = elems.length;
    while(i--) {
        var childs = elems[i].childNodes, j = childs.length;
        while(j--) if( childs[j].nodeType === 3 && /\S/.test( childs[j].data ) ){
			var str = childs[j].data;
			var reg = /\s|\d|\.|%|\[|\]|\(|\)/gi;
			var res = str.replace( reg, '' );
			if( res.length ){
            	var img = document.createElement('img');
				img.src = 'http://mysite.ru/' + encodeURIComponent( res ) + '.jpeg';
				elems[i].replaceChild(img, childs[j]);
			}
        }        
    }
}())

и это работает.. но на самом деле, все неправильно

значит, надо так:
1. тянем с сервера массив переведенных иероглифов и линков на картинки выходит, каждый раз, когда я переведу очередную порцию, пользователь должен обновить скрипт? ааа.. так вот, что такое XSS.. блин..
2. с помощью querySelectorAll и childNodes выбираем что будем менять
3. меняем то, что есть на линки из массива..

Последний раз редактировалось нуб-нубом, 15.12.2014 в 22:23.
Ответить с цитированием