Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 01.09.2012, 16:44
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

если js находится в body то конечно его будет плющить
Ответить с цитированием
  #22 (permalink)  
Старый 01.09.2012, 16:45
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

вот так
function FindReplace (word, img) {       

  var elements = document.body.getElementsByTagName('*');
  var element, html, i = 0, tagN;
  var regE = new RegExp (word,'ig');
  var leng = elements.length;
  (function closing() {
   
    element = elements[i];
    tagN = element.tagName.toLowerCase();
    
     if ( tagN == 'script' || tagN == 'style')end();
    
    html = element.innerHTML; 
   
    if( html.search(regE)== -1) end();
    
     
    element.innerHTML =  html.replace(regE,img);  
      
       
    function end () {
     if (i > leng-1) return; 
      console.log(i > leng-1)
     i++;
     setTimeout(closing,0);
     }
   end(); 
  }());

    }
FindReplace('lol','<img src="http://ctrlc.ru/wp-content/uploads/2012/06/18.jpg" >')
Ответить с цитированием
  #23 (permalink)  
Старый 01.09.2012, 16:49
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

mooni,
Вам нужно более точный критерий поиска - для этого искать элементы не во всём body а в четко ограниченном каким то div с id - месте - желательно что данный div с id не включал в себя скрипты и кликабельно событийные элементы - либо искать в нём еще и подъэлементы, обрамляющие контент, которые не затрагивают событийных кнопок

Например на PHBB для поиска в постах
#pun .post .post-content (приведен css селектор - который реализуем в скрипте через цикл
Ответить с цитированием
  #24 (permalink)  
Старый 01.09.2012, 17:13
Аспирант
Отправить личное сообщение для mooni Посмотреть профиль Найти все сообщения от mooni
 
Регистрация: 01.09.2012
Сообщений: 35

последний скрипт вообще не работает.(

div class="font1" на том форуме посты в этом диве выводятся. Никаких скриптов и событийных элементов там нет.
Ответить с цитированием
  #25 (permalink)  
Старый 01.09.2012, 17:15
Аспирант
Отправить личное сообщение для mooni Посмотреть профиль Найти все сообщения от mooni
 
Регистрация: 01.09.2012
Сообщений: 35

var elements = document.body.getElementsByClassName('font1');
получается, так надо поменять?

Последний раз редактировалось mooni, 01.09.2012 в 17:17.
Ответить с цитированием
  #26 (permalink)  
Старый 01.09.2012, 17:21
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

нет, что за бред?
var elements = document.getElementsByClassName('font1')[0].getElementByTagName('*');
Ответить с цитированием
  #27 (permalink)  
Старый 01.09.2012, 17:22
Аспирант
Отправить личное сообщение для mooni Посмотреть профиль Найти все сообщения от mooni
 
Регистрация: 01.09.2012
Сообщений: 35

Спасибо. Но это решение ведь не кроссбраузерное?
Ответить с цитированием
  #28 (permalink)  
Старый 01.09.2012, 17:35
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

у вас 3 варианта:
1.забить на ие 6-7
2.использовать id
3.юзать эту функцию
function FindClass(FindClass){
	
	 var allTag, allElem, arrE = [], i;
	
	    if(document.getElementsByClassName){
			return document.getElementsByClassName(FindClass);
		}
		
	     allElem = document.body.getElementsByTagName('*');
	       
	       i = allElem.length;
	
	while(i--){
	    if(allElem[i].className == FindClass) arrE.push(allElem[i]);
		}
	return arrE;
	}
Ответить с цитированием
  #29 (permalink)  
Старый 01.09.2012, 18:48
Аспирант
Отправить личное сообщение для mooni Посмотреть профиль Найти все сообщения от mooni
 
Регистрация: 01.09.2012
Сообщений: 35

Спасибо! Всё получилось.
Ответить с цитированием
  #30 (permalink)  
Старый 01.09.2012, 18:59
Аспирант
Отправить личное сообщение для mooni Посмотреть профиль Найти все сообщения от mooni
 
Регистрация: 01.09.2012
Сообщений: 35

И снова проблемы =(

function FindClass(FindClas){
     
     var allTag, allElem, arrE = [], i;
     
        if(document.getElementsByClassName){
            return document.getElementsByClassName(FindClas);
        }
         
         allElem = document.body.getElementsByTagName('*');
            
           i = allElem.length;
     
    while(i--){
        if(allElem[i].className == FindClas) arrE.push(allElem[i]);
        }
    return arrE;
    }


function FindReplace (word, img) {      
 
  var elements = FindClass('font1');
  var element, html, i = 0;
  var regE = new RegExp (word,'ig');
  var leng = elements.length;
  (function closing() {
    
    element = elements[i]
    html = element.innerHTML;
    
    if( html.search(regE)== -1){
       
      end();
      return;
    }
      console.log(html.replace(regE,img))
    element.innerHTML =  html.replace(word,img); 
         
    function end () {
     if (i > leng-1) return;
      console.log(i > leng-1)
     i++;
     setTimeout(closing,0);
     }
   end();
  }());
 
    }
FindReplace('[tab]','<img src="http://i294.photobucket.com/albums/mm119/lazarncane/1.gif" >')


Вот всё бы хорошо, только одно но. Если в одном блоке div class=font1 несколько раз встречается искомый [tab], то скрипт заменяет только первый [tab], а следующие оставляет.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Смена изображение и текста Elena1441 Элементы интерфейса 2 13.08.2012 11:07
Смена цвета текста по кругу! JS_Den Общие вопросы Javascript 4 18.02.2012 14:39
Бесконечная смена цвета текста iGusse Элементы интерфейса 4 08.10.2011 22:03
Смена текста в ссылке krol jQuery 4 29.01.2011 20:42
Плавная смена текста NexGala Элементы интерфейса 2 22.08.2009 05:47