Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Смена текста на изображение (https://javascript.ru/forum/events/31286-smena-teksta-na-izobrazhenie.html)

mooni 01.09.2012 20:29

Только одна печаль. Вместе с [tab] он полстраницы режет. Возможно ли сделать так, чтобы скрипт реагировал только на [tab]? ни буквой больше и ни буквой меньше

cyber 01.09.2012 20:34

скрипт заменяет все где есть [tab],
бла бла[tab]бла
заменит на
бла бла<img src="http://ctrlc.ru/wp-content/uploads/2012/06/18.jpg" >бла

cyber 01.09.2012 20:34

было бы лучше если бы вы дали ссылку на ту страницу на которой тестите

mooni 01.09.2012 20:35

с двумя пробелами не катит, ибо [tab] может стоять в самом начале сообщения, а пустой пробел в самом начале форум режет. С одним пробелом после [tab] уже режет только треть форума))

mooni 01.09.2012 20:36

http://akv.myqip.ru/?1-1-0-00000000-000-0-0

cyber 01.09.2012 20:38

эм и что где поехало?

mooni 01.09.2012 20:39

Ехать уже ничего не едет, а вот посмотрите на сообщения.))

cyber 01.09.2012 20:49

я понял=)
на партачил не много=)

Deff 01.09.2012 20:53

Цитата:

Сообщение от mooni
http://akv.myqip.ru/?1-1-0-00000000-000-0-0


mooni,
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;
  word= word.replace(/([\[\]])/g,'\\$1');
  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(regE,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" > ')



alert('hi');

</script>

mooni 01.09.2012 20:57

Шикарно! Спасибо!))

cyber 01.09.2012 20:57

проблема в регулярке если создавать через new работает не правильно
<!DOCTYPE HTML>
<html>
  <head> </head>
  <body>
 <div>
У этого термина существуют и другие значения, см. Земля (значения).
Земля́ — третья от Солнца планетаlol Солнечной системы, крупнейшая по диаметру, массе и плотности среди планет земной группы.
    </div>
    <div>
      Чаще всего упоминается как Мир, Голубая планета[4][5], иногда Терра (от лат. erra). Единственное известное человеку на данный момент тело Солнечной системы в частности и Вселенной вообще, населённое живыми организмами.[tab]
      Научные данные указывают на то, что Земля образовалась из солнечной туманности около 4,54 миллиардов лет назад,[6][7][8][9] и вскоре после этого приобрела свой единственный естественный спутник — Луну. Жизнь появилась lol на Земле около 3,5 миллиардов лет назад. С тех пор биосфера Земли значительно изменила атмосферу и прочие абиотические факторы, обусловив количественный рост аэробных организмов, так же как и формирование озонового слоя, который вместе с магнитным полем Земли ослабляет вредную солнечную радиацию, тем самым сохраняя условия для жизни на Земле. Учитывая период полураспада радиоактивных элементов, радиация, обусловленная самой земной корой, снизилась ещё более значительно. Кора Земли разделена на несколько сегментов, или тектонических плит, которые постепенно мигрируют по поверхности за периоды во много миллионов лет. Приблизительно 70,8 % поверхности планеты занимает Мировой океан[10], остальную часть поверхности занимают континенты и острова.</div>
    <div>  
      Жидкая вода, необходимая для всех известных жизненных форм, не существует на поверхности какой-либо из известных планет и [tab][tab][tab] планетоидов Солнечной системы, кроме Земли. Внутренние области Земли достаточно активны и состоят из толстого, очень вязкого слоя, называемого мантией, которая покрывает жидкое внешнее ядро (которое и является источником магнитного поля Земли) и внутреннее твёрдое ядро, предположительно, железное.
    </div>
   <div> 
  Земля взаимодействует (притягивается гравитационными силами) с другими объектами в космосе, включая Солнце и Луну. Земля [tab] обращается вокруг Солнца и делает вокруг него полный оборот примерно за 365,26 дней. Этот отрезок времени — сидерический год, который равен 365,26 солнечным суткам. Ось вращения Земли наклонена на 23,4° относительно её орбитальной плоскости, это вызывает сезонные изменения на поверхности планеты с периодом в один тропический год (365,24 солнечных суток). Сутки сейчас составляют примерно 24 часа.</div> <div>Луна lol начала своё обращение на орбите вокруг Земли примерно 4,53 миллиарда лет назад, что стабилизировало осевой наклон планеты[источник не указан 141 день] и является причиной приливов, которые замедляют вращение Земли и отдаляют Луну. Некоторые теории полагают, что падения астероидов приводили к существенным изменениям в окружающей среде и поверхности Земли, в частности, массовые вымирания различных видов живых существ[11].
      </div>
    <script>

function FindReplace (img) {       

  var elements = document.body.getElementsByTagName('div');
  var element, html, i = 0, tagN;
  var leng = elements.length;
  
  
  (function closing() {
   
   var element = elements[i];
   
    
    var tagN = element.tagName.toLowerCase();
    
    if ( tagN == 'script' || tagN == 'style'){
      end();
     return;
    }
    html = element.innerHTML; 
   
    if( html.search(/\[tab\]/ig)== -1){
      
      end();
      return;
    }
     
    element.innerHTML =  html.replace(/\[tab\]/ig,img);  
      
       
    function end () {
     i++;
     if (i > leng-1) return; 
     setTimeout(closing,0);
     }
   end(); 
  }());

    }
      FindReplace('<img width="50" height="50" src="http://ctrlc.ru/wp-content/uploads/2012/06/18.jpg" >')


    </script>

  </body>
</html>

mooni 01.09.2012 20:59

Жаль плюсов больше нельзя ставить)))


Часовой пояс GMT +3, время: 14:05.